Looking at the docs, the Transform component or its base classes do not have a transform member, so why in a Monobehaviour script can I call transform.transform an infinitesimal amount of times? It makes no sense.
Can someone point me to the docs where it explains this, in case I missed it?
I assume you mean “infinite”, since “infinitesimal” means “really tiny”. Anyway, Transform inherits from Component, which has a transform variable. The docs tell you what every class inherits from (if any) and what all the class variables are.
I’m no expert, but I wanted to add that I believe you should use transform.transform over transform.GetComponent(Transform). The latter has to perform some kind of operation (not sure what it is, maybe a series of string compares?) in order to find “Transform”, while the former is simply accessing the field of a field in your script. Accessing the field should be faster.
Correct, just use transform; you would never need to use transform.transform. It’s true that you’d prefer transform over GetComponent(Transform), though the speed difference is small.