|Keep It Simple, Stupid|
Hmm... well perhaps I should have said it is "intended" to be backwards-compatible. And in the strictest sense, if every use of STORABLE_thaw did a "return;" to return nothing it would be.
That said, you are right on the possible ways of doing it provably safely.
But things get ugly quickly... STORABLE_thaw2? STORABLE_freezify/thawify? Storable::SaneThawing?
None of these are particularly elegant, and you could argue that many just make the problem of bad interfaces worse.
Unless of course, we moved to Storable2 and redesigned the API. Although Storable works well enough, I must say I do find the plethora of similar-but-different functions somewhat PHP'esk.
In reply to Re^2: Safely altering the behaviour of heavily used modules