While there are other examples, the most notable case is that only public variables are exposed to the inspector window.
By encouraging use of public variables, this also encourages new programmers to avoid the use of properties and setters/getters, which are established to be much better practice than using public variables for the same task.
You can write a custom inspector to get the proper behavior, but I am wondering if I am missing something with understanding why Unity didn’t provide this out of the box, yet they provided inspectors which encourage the bad practice.
Background: