This would require some sort of local index of addresses. This would be bloat. Further, how big would you make the index field size? 4 bytes? This was once considered enough for packet-switched networks.. and looked what happened there!
Satoshi intended for addresses to be only be used once. Future address generation could far exceed addresses used in other protocols (ie IPv6 = 16 bytes).
Mr Smith is correct. Great minds have already thought of such things for us already. In fact, somewhere along the way someone already figured a way to compress public keys to half their original size. No harm in us mere mortals trying to understand however.