move gameObject with collider without rigidbody component attached

I remember to hear somewhere (an unite 2009 lecture ?) that you should never move a gameObject with a collider component attached without a rigidbody component attached because all physic objebts are calculated (or set up.. ?) again in this frame you move the "only-collider" gameObject. And this would be very bad for the performance.. Is this true ? Should I only move gameObjects which have a collider attached via a rigidbody and forces ?

Yes, when you move an object with a collider and without a rigidbody, the complete static collision data needs to be recalculated, which is slow.

What you should do, is to make sure that all objects you intend to move have attached rigidbodys - if you don't want the objects to be moved by the physics engine, because you only want to move them through scripting or animation, then just set the rigidbodys to kinematic. Then you also don't need to use any forces to move the rigidbody - for best results, just use Rigidbody.MovePosition().

Yes it's generally a good rule to stick to.

If the collider that your moving doesn't hit anything else, then you might not run into problems, but for anything which is going to actually interact with other physics objects, moving the object yourself is going to cause unpredictable and most likely very weird results.

Whenever I move an object that has a collider + rigidbody with kinematic flag set I get Dynamic Collider.Create in the profiler. When I move more than just a few (around 50) this causes a spike on the iPhone. Is there a better way to move colliders around or do I just have of accept the fact that moving many colliders will cause a spike?