What is interesting is to be able to reimplement #ifTrue:ifFalse: and co in any object in the system and to use it.
Now in practice it is difficult performance wise.
And why performance would be a problem?
If ever it is used intensively and performance *become* a problem we can cache the deoptimized methods somewhere.
As an experiment we overrided mustBeBooleanIn: so #ifTrue:ifFalse: and co would work on any object. However this hack is slow and interesting only for experiments IMO.
I asked in the bug report to add a setting... But no one answered and it was integrated. Marcus said we'll add a setting later.
I'm still confused about what the problem is here...
Because even if it's enabled by default it cannot break anything.