For a hit from RaycastHit, does it matter if you reference the gameObject via hit.collider.gameObject or hit.transform.gameObject? Does one not give you access to the meshfilter or something? Is there a difference between the two references?
There is no difference. They both return the same thing.
They seem to be interchangeable; although I suspect that transform is better, since in many talks about performances, every one is more inclined to suggest to use the transform component, to access to children of a GameObject.
So maybe also the search for the parent is faster with transform?