Because it has nothing to do with the binding. It is a core OH thing. And I could go into a really long explanation about how Object Oriented Programming works and inheritence and a bunch of complicated explanation. But instead you will have to trust me, making is so you can use if(MyColorItem.state == ON)
would be a good deal of work and no one has volunteered to do so.
It depends on the problem. You can look in the docs where most of the stuff it captured about how OH works. You can look at this forum for examples. The DP postings are particularly useful. And you can look at the source code.
I don’t think getStateAs is an official part of what is expected to be used from Rules so I don’t think it has been written up in the docs yet.
For type conversions, the best place is Cheap Bluetooth antenna with raspberry pi zero - #9 by danielwalters86