Yes, but it illustrates a pretty simple yet devastating problem. Normally, the destructor would be called for the object and decrement the reference count, but if you pass by reference it isn't, so calling Delete() then is a problem.
I can't think of a way to add security checks to make sure it doesn't happen.
It may be a programmer screwup. Delete() is safe to call on a smart pointer, because it only decrements the ref counter and as long as other objects exist, they are gauranteed to have access to the memory during their lifetime.
Don't we often set pointers to NULL ourselves, when we don't need them, maybe to avoid programming errors? There are also other synonyms, other functions for the same: Erase and RemoveRef. Both call Delete.
This shows how a simple programming error, that should be safe to do with raw pointers and a smart pointer class passed by value, becomes devastating when passing the class by reference.
I might want to do something about that. More than putting a big, fat warning, of course.