I think you want to use some combination of the
#:failargument toffi-libandmake-not-availablewithdefine-ffi-definerto make the relevant functions error when called rather than when the modules are required.
I did try that line of attack. I can get ffi-lib to return a value that indicates, that the library is not loaded.
However define-ffi-definer signals an error, when it is passed a non-lib.
The make-not-available option is for the individual functions.
It's possible to cheat - i.e. pass a different library to define-ffi-definer but that's at best a hack.
Also, in regular use, I'd expect an error when the library is not present.
Since pyffi is require for-label the loading happens before the code in the Scribble file runs - so I don't see a way for the documentation to set a flag suppressing the error.