The malicious-key binding bit is what makes me stop scrolling here, ML-KEM still being able to hand-wave that away is a bit embarrassing.
k^2-sized public keys/ciphertexts is the tax, of course, but at least they’re being honest about the deployment envelope instead of pretending the static-static case is free.