Many years ago, when I used to program in C (!), I could make a change in some source code buried deep in an application and run "make". It was smart enough to only compile the required code, so I could just go and grab a coffee and when I came back it was ready to test. Same applies to many modern build tools (e.g. "grunt/gradle"), in fact they even monitor file changes, so you don't even have to explicitly run a command.
But with OS, if I make a change in a deep espace I either have to work out which consumers are affected and manually publish them one by one in the right order or run an "all content" solution which will take ages. There is a "Publish all consumers" option, but it is "dumb" and just publishes the entire dependency tree, regardless of the nature of the change, so can end up being little better than an "all content". Then when I come back (from lunch, because I can't drink that many coffees), I have to wait for first load delays to finally see the results of my change...
I suggest this:
1. If I make a change, for example, inside an action, then 1CP should work out which espaces use THAT action and only publish them, while ensuring that nothing else needs refreshing for me to actually see the result.
2. It should then (optionally, but automatically) precompile them so there are no first load delays. I don't mind being offered a list of entry point consumer espaces to limit the scope, as long as this is shown at the start - so I can go a get my coffee.
Now THAT is One Click Publishing!