First of all I have to admit I use them, my customers use as well. But It doesn’t change the fact, most of “premium themes” like a piece of shit!
1) Multi-purpose madness
What a contradiction? I’m not good at English but you can look theme definition.
I understand developers who selling stuff on themeforest. You want to reach more customers and get more revenue (probably read some stories “millions dollar revenue with single theme…” ).
I’m not the right person to talk about marketing, but IMHO: You can bundle all backend features as “core”, then you can ship themes separately with using same core, different front-end. Also you have better chance at niche.
Shortly; we can switch theme when needed, don’t need to use same theme for multiple purpose.
2) Shortcode API
The worst thing on WordPress ecosystem: Visual Composer
What a great idea? every fuckin functionality as a shortcode parameter.
Btw I love Shortcode API. I wrote similar thing for Zend Framework at the past and some cases (sending personalized emails etc…) it makes perfect sense but page builder is not of them.
When you selling premium product, actually you are selling support, not only source code.You are probably distributing your theme under the GPL, somehow I can get source code (*unethical) . Make your products unique by providing premium support.
I tried various theme manufacturer so far. Their supports sucks (mostly just wasting time.)
4) Backward Compatibility
Usually updates are nightmare. I shouldn’t be nervous when updating theme.You have to guarantee my website will remain the same. Especially when you remove or change “shortcode” behaviour, you potentially screw up all contents.
Please don’t break backward compatibility!
5) Other Reasons
Dependencies: install bunch of plugin because theme requires it. So, when you get security issue with one of them, theme providers can easily blame plugin author.
Localization support: stale pot catalog, outputted string without i18n function.. sounds familiar?
Performance issue: don’t need to explain. Did you check your theme under the high traffic?
Cache problems: “don’t cache that page/agent” is not right answer.
HTTPS: importing js/css from external resources without https. (Fortunately, google fonts comes with https)