I totally understand what you mean. Many people have issues with wpautop inserting unwanted tags inside shortcodes, and I was hoping that moving it to after shortcodes was the final solution.
However, as you pointed out, in some specific situations the auto-formatting is still a problem.
There is a [clean] shortcode, you can try wrapping blocks of HTML/shortcodes with it. It removes all <p> and <br> tags inside. Not the most elegant solution, but it may work for you.
Otherwise, you can move code blocks to a custom field, post type or files, then load it into the page.
Let me know if you find a good solution!
So, I finally added an option to move wp_autop to after the shortcode. It’s under the new Settings tab in the documentation area.
As you know, this has been a persistent issue for a long time, and I’m hoping that adding the option to move it will solve it once and for all.