Yep, I was finding that while searching. The resbuf doesn't allow for any "strange" data types, one can't even pass the safearray/variant types which is created by vl.arx. They cause errors as there's no translation into the resbuff.
It makes me wonder how these types are implemented inside vl.arx. Not to mention those Com object types.
The reason I'm finding the built-in types insufficient is many-fold. As an example: BigNum would at best become a list of integers if used as present. If I can change it to a specialized type it might be possible to implement overrides for some functions like + - *, etc. But if it stays a list, there's next to no possibility for such.
I suppose the short answer is to simply make the C++ functions / objects COM accessible so they can be opened from the lisp side of things. That's sorry, since COM is not always available (e.g. Mac).