The idea that something (usually applied to software, but also applicable to most other areas of design and arguably behaviour) should act in the way that people expect it to. A button labelled close that pops up a window rather than closing the existing one violates the principle of least surprise. So does version 2 of your program reversing the meaning of two gadgets. Effectively it should be a reasonable assumption that things should behave consistantly with themselves and everything else. Wilfully breaking this without a good reason is bad and wrong.