The confusion comes in when two distinct concepts have the same name.
THREE. Three concepts in one name!
A public key is also a "script pubkey"— a sequence of instructions in bitcoin script that provide the rules for spending a coin.
A private key is also all the data you need to completely compose a scriptsig for a script pubkey.
This third set of definitions, while perhaps the least conventional, are the ones that actually matter when it comes to creating transactions. Once you use these definitions it's no longer surprising that "compressed or not" results in a distinct keypair, all other things equal— just as adding a hash-preimage check to a script would show up in the pubkey and require the right preimage as part of the private key.