We’re under-covered currently for tests that simulate crazy callers. The practise of asserting on statically wrong use limits the space of things that can / need to be tested here, but there is still some freedom.
This should be less “test” and more “mechanical verification that the interface we present to callers isn’t unintentionally changed”.
(As an example, libopus’ test_opus_api, calls into the library about 116 million times. I’d say that libopus has an API surface area of about 50x larger that libsecp256k1)