You should not need to use !important that often provided your CSS selectors are specific enough. We very rarely use !important in our own CSS and it is usually only applied if we are overriding a third party class that absolutely requires it.
Provided your CSS is enqueued after ours, your CSS should naturally ‘cascade’ over ours. In fact we do this ourselves on our own website 🙂
The WordPress customize tool is quite restricted, I agree. We tried to be as integrated with WordPress core as possible hence we chose to use the WordPress customize feature to enable basic CSS control on the form. Given our development focus, customers can then override our CSS classes with their own or, as you correctly state, you can switch off the skin CSS entirely so that you can develop your own. We’d definitely like to expand our styling options in future though.