<<< Split from Array of pointers to a struct >>>
Those "inconsistencies" you describe do contribute to confusion. Feeding those inconsistencies within your own coding style certainly does not reduce confusion. Humans cope with inconsistency, find ways to manage or work-around inconsistencies, and find ways to impose consistency. They do this because inconsistency is not an attribute that contributes to any improvement in human comprehension and human productivity. Quite the reverse.
You might get away with a haphazard approach in small developments - like homework exercises. The problem is that what you can get away with in small developments causes considerable problems in larger developments. In larger developments, the impacts of inconsistency are commensurately larger (in formal language, the impacts grow faster than linearly with various measures of program size), and you will not get away with them.