Can you explain why this is required?
Not really :-p
It appears to be a quirk of BlitzMax.
In theory, one should be able to pass Null for the callback function, for which NULL/0 would actually be passed. But it appears that some function pointer reference is passed anyway, which BASS attempts to call - resulting in the error message I was getting.
To work around it, I created some glue which would pass a C++ NULL for the callback when none was required.
Seems to work :-)