When creating a new table, we define Display name, the Schema name will also be updated correspondingly. And this is by design.
If we define the Display name with upper-case, then the Schema name will also be defined in upper case correspondingly. And it will not match the lower-case Logical name. Because it seems that Logical name is always in lower-case by default when creating a new table and column.
In case, the Display name is defined in upper case, as long as we modify the Schema name to lower case from the beginning, then it would match the Logical name.
However, not all users will be aware of this behavior and only notice when using the schema name and logical name to develop other function.
For example, when we develop an Odata API to retrieve lookup value, if Schema name and Logical name are not the same, then it will return error. After we updated both the Logical name and Schema name to be identical, it works.
It would be a good idea if we can match Schema name and Logical name in both upper-case or lower-case when we create a new table and column automatically.