I've recently been implementing a simple Bitcoin wallet and some libraries seem to disagree with address derivation from the same WIF private key, and thus wouldn't sign transactions. After that, I used different libraries to implement the same thing and they successfully signed transactions, but then the network refused to accept them. When I did it with a private key that was derived from a mnemonic (in a specific way), it worked.
So, I'm really wondering whether there is a specific requirement imposed on Bitcoin's private keys.