The implicit versus the explicit
In a lot of computer things (such as programming languages, or system environments) we have the choice between being concise and leaving things implicit, and being verbose but making things explicit. Here is the thing about this choice:
Computers are fine with implicit things because they never forget; they effectively have perfect memories for this sort of thing. But humans have limited memories (especially short term memories) that have to be periodically reinforced, so we necessarily forget some of the implicit stuff every so often. Which periodically causes problems.
(The problems of modal interfaces are another example of this, since the computer has a perfect 'memory' of what mode you are in but people do not.)
Obviously, the more implicit things you design into a system, the more dangerous this effect is (or at least the more likely it is to come up). At the same time, we can't make everything always be explicit; there's always some implicit stuff somewhere (even just in common user interfaces) and conciseness has a value of its own.
Like many of these issues, it is easy for the designers of a system to not really be conscious of how much implicitness is present; their memory for its implicit details is in great shape and is constantly being reinforced because they work deeply with the system all the time. Similarly, frequent users are also reinforcing their memory all the time.