The underlying database may be case insensitive. This is why foo and Foo should cause an error. On the other hand, there are parts of PRPC that are or have been case sensitive because Java is case sensitive. Best practice is to not depend on either case sensitivity or case insensensitivity
Case sensitivity has been a source of problem because we have seen developers creating properties with the same name in different cases causing issues. Because the column names in the database that they map to are case insensitive, it causes issues with saving and retrieval of data.
It is best not to mix to cases for property names.