Yeah its a quick fix and I do all the editing so its not a problem in my case. I haven't actually experience the reset when switching from HTML to visual editors. My div ids don't get striped out but if you are adding style directly then yes it will. But the downside of course is if there is a new page the div code won't be there.
If you are using it as a CMS then give the client a FAQ with all the shortcodes. I say this because many times the WP UI drop-down visual button doesn't work properly so its useless in visual anyways. Then its much easier to create a custom shortcode with all the div styling that the client can add. Then you can create multiple styling options in shortcode and give it to the client to create custom pages/posts.
Its not the easiest solution but its nice once its all setup. Some documentation.
I haven't tried this plugin but looks promising. Link.