My guess would be to update the headers so that it can be sure it can resolve dependencies correctly. That is only a guess, but it seems a logical reason.
I don't think so, because you can disable repositories, clean all headers, manually add and remove stuff, and still yum remove stuff from repositories yum no longer watches.
I'm guessing yum just does it because it's a transaction, and it isn't told what transaction to do it on and what not to do it on.