Win7 Prof x64, 32gb, i5 6600, 2x GTX 970
Broken: 2.77a abf6f08
Short description of error
Using an object as custom shape for a bone allows the deletion of the object without actually removing it from the file because the bone is still using it.
This will lead to the situation where the object is non-existant in the scene but still referenced and kept around.
Exact steps for others to reproduce the error
Create an object (I used an UV sphere)
Create an armature (I used a simple single bone one)
Assign the object to the bone as shape
Delete the object
Save the file and reopen it (I did via recent files)
Check the Outliner for the sphere, it still exists under Blendfile and Data Blocks but will be non-existant in the scene itself and is out of reach now.
So far I am not aware of any way to get the object back into the scene and the only way I found to clean such a mess up is recreating the objects, reassigning the bones and then clean up the file to get rid of the semi-orphans which turned luckily into true orphans after they weren't used anymore.
I'd propose that bones get changed to use meshes instead of objects because in that case you could just create a plane and change it's mesh to get the access back, but I'm pretty sure that's no simple change.
Maybe the simplest approach would be to offer a way to recover referenced objects that are not present in any scene?