How does Shopify not give enough control? Anyone can write Shopify apps to extend extra features with their API or pay someone to create an app (less than paying someone for a full ecommerce site)
And writing apps yourself is not always ideal because they need to run on your own server (thus mitigating the benefit of using a hosted platform to avoid infrastructure maintenance), and any frontend modifications can only be done via JavaScript (you can't modify the outputted HTML itself, so it's a lot more difficult to make robust, performant and accessible customizations to functionality).