As an aside, your terminology is a little confused - an object file is what you get when you compile. There's no way to bypass making an object file, only to avoid making it again if the source hasn't changed.
Thanks for the replies I think I understand more clearly now.
The reason I asked is because in the 1st example, there is no modulea.o file created that I can tell. Is it created temporarily and deleted once a.out is written?