A plain C struct can contain variable declarations, but not functions. C++ allows functions in structs, which conforms better to the idea of orthogonality.
A Java variable declared Object x can be assigned any class type, but not basic types. Like most any rule which contains the word “except,” this one violates orthogonality, since some combinations are forbidden.
Most languages limit the types which can be used as array subscripts to integers and a few simple types. Likewise, most languages which have a switch or case control structure limit the test type to integers or other simple types. Both of these rules violate orthogonality.
Orthogonality suggests any variable should be allowed to be on the left of an assignment, presuming the types match. The C and C++ languages forbid arrays to be assigned.
Of course, orthogonality isn't the only virtue. For instance, the limits on subscript type make subscript calculation simpler and faster.