I know this has been asked before, but it's still unclear whether this is an OK practice. The advice seems to never do this unless you have to, but I can think of some examples where this could be useful.
For example, a program that supports encryption and signing like GPG could support generating Ed25519 keys and then use them for encryption (by converting them to Curve25519 keys) and signing (leaving them as Ed25519 keys). This would mean that only Ed25519 keys would have to be generated, preferable from the user input perspective since handling multiple key types could get confusing.