Well, the problem here is that C using gems are going to often be memory corruptingly buggy until and unless either the gem source is updated to declare the proper parts volatile or Ruby's own C API is reworked to evolve this bug out of existence and then gems would have to be updated to use the API anyway.
Both problems are hard and the current state of affairs is apparently some random amount of the time we'll get memory corruption bugs.