Surely a type class Option would be a good thing. AnyRef could then use null as its None instance, and avoid wrapping altogether. As i understand it currently an Option Int is double wrapped, with a type class it could be reduced to a single wrapping.
One thing I’ve often wondered about it whether you could use -2 power 31 as the None value for an Option[Int]. But maybe that would create too many problems. The name could be changed to Opt at the same time. Very commonly used names should be short.
Switching to Type classes would certainly be painful. But if we were designing Scala from scratch would anyone now seriously argue against Type classes for parametrised types taking a parameter not inheriting from AnyRef? So maybe the Type class path is in the long run inevitable and its just a question of how long we take to accept the inevitable and how long we string out the pain of denying it.