You cannot take an address and make a new address that the same private key can use, correct? But this is just because of the hashing going on, if we used pure public/private key pairs that would actually be possible?
This is correct. If we used pure public keys, rather than hashes of public keys, then the sender could make new addresses for the receiver from normal keys.
Regarding identifying the sender generated keys. The sender could notify the receiver out of band, right?
A business could use this model. However, if you end up notifying someone that you've sent him something you could loose the anonymity of the transaction if the side channel is monitored.