Surely some smart key exchange algorithm could be used for that, e.g. the CPU provides a public key to the TPM and the TPM encrypts the symmetric disk key with that public key. Similar to how TLS works.
The private key would have to stored in clear text somewhere. Potentially if you had non volatile space on cpu that to store the private key, that might work. But if you’re going to do that, might as well just use an ftpm.
Why not store it directly in the TPM, if that’s the device that will do that initial decryption?
You can’t do that since vulnerability is the connection between the TPM and the CPU, you need to encrypt that path.
What do you mean by that? Generate a new private/public key pair every time you setup a new TPM? Or when you boot the system or something?