Earlier quoted context omitted.
A contrary indie developer perspective: some features are just really hard to discover Maybe tackle this problem first, then fall back to exposition. One suggestion might be to start by removing hieroglyphic icons, or at least augmenting them with text labels.
> Maybe tackle this problem first, then fall back to exposition. You assume it can be tackled. Here's a concrete example: The tool automatically snaps new windows to where user wants them to be. Rarely the user wants to undo that. The core functionality (autosnap) does not require any visible interface whatsoever. If I want user to see the undo button, I have to place it somewhere over his app's window, which bloats…
This is just the first thing I have thought of. There are probably better options that require a little more thought.