Yes. asOBJ_NOCOUNT will allow you register reference types without having to bother with implementing reference counting. It works well for cases like you mentioned where the object instance has infinite lifetime.
However, it appears you use two distinct memory models for the same type. You don't want to allow handles to the instances that are supposed to be temporary stack objects, as the handle might stay alive longer than the object on the stack. And you don't want to use instances from the memory pool as temporary stack objects as it would be difficult to know when the pooled instance can be reused.
To solve this you could register the type twice with different names. Once for the pool allocated model as asOBJ_REF|asOBJ_NOCOUNT, and another for the temporary stack objects as asOBJ_VALUE|asOBJ_POD. Then add implicit conversions between the two so that it when passing the objects around by value they can be interchanged transparently.