isEmpty does not necessarily imply not isSolid. You could have water, goo, etc which would be neither "solid" nor "empty". What exactly each of the properties means and where it should be used has not been totally flushed out at this point, as you can see from their somewhat inconsistent usages.