I can't imagine why this would only be happening on 64 bit Linux. There have been some investigations into this issue, but I don't think any insight has yet been gained.
Having said that, you shouldn't have to resort to ref-counting of the geodatabase object in your application. We are already doing that for you. In general, the geodatabase depends on the single instance model for objects of various types. For example, this includes the geodatabase and table objects. When a call is made to open a geodatabase or table, we first search an object cache to see if that object has already been instantiated. If so, rather than re-instantiating the same object, we add-ref the existing object and return a reference to it. This avoids needless overhead, but also ensures that the internal state of the object remains consistent.