For embedded systems with hardware accelerated ECSDA engines, it would be useful to be able to expose swappable function pointers for signing and verifying.
I have a fork which does this here.
It's a little bit weird, because the libsecp256k1 context is still initialized unconditionally. This is an okay tradeoff, IMO, because hardware accelerated Schnorr signing is extremely rare, so in practice a caller would likely still want libsecp256k1 for Schnorr, even if they are accelerating ECDSA.
Is this something that makes sense for the project to support? If so, I'm happy to clean up and test my fork and PR it.