Jonathan Nieder [off-list ref] writes:
Ah, missed this before. It is not clear to me why this difference ---
is it just to be conservative about changing behavior?
Yes. It is clear from the context you mean its tree if you feed a commit
to commit-tree, but the original intent of not dereferncing was to avoid
mistakes by scripts and people, so you need to make a convincing argument
that not derefencing does not help avoiding mistakes, and prove that
nobody's script is relying on the current behaviour for type-checking
purposes.