I know you are saying you can't do anything about the spawning inside blocks and I do understand that is a larger issue but we have the problem constantly on our server. However, it only happens when someone has slept in a bed. Using /sethome and then /home no one on the server has yet to spawn inside any blocks but if we sleep in a bed and use /home it happens nearly every time, even if we are very near to our bed when we do it.
Is it possible to disable the sleeping in a bed setting your home location and only having /sethome? Awhile back I ran a bukkit server and the essentials mod (I think it was called) had this functionality. Sleeping in bed would set where you would go back to on death but only /sethome would actually set your /home location.