Can you elaborate on this? 'placement new' ? How would the double destruction occur given the check in the destructor checking the ref count? Is that generally the blanket answer for anytime someone is calling a destructor manually?
Explicitly calling a destructor is only safe in very select circumstances. If you aren't familiar with placement new, go look it up, descriptions and examples are abundant on the web.
Your code as posted has a bug. If I delete Object enough times to cause the wrapped object to hit a refcount of 0, and then let the Object go out of scope, it will double-delete the wrapped object. Your destructor is not safe if refcount == 0 at the time that it is called.
Furthermore, calling free() on memory allocated with new() is also bad juju. The correct thing to do is replace your manual destructor call and the call to free() with a delete call, in which case your bug might jump out at you a bit easier.