Agreed. Pricing is too important to let someone else set all the rules. I'm not saying that Stripe did a bad job with their subscription system, but I think it's a mistake to let someone else make all the decisions when it comes to such a critical aspect of your business.
For example, I personally don't like prorating costs. I want my customers to be able to make changes and play around with the new features before deciding to pay. I also don't like the idea of having a few plans and forcing every single customer into one of them. I want everyone to use the software how they want, and pay based on that usage. These are important business decisions that would be impossible (or at least very difficult) if I used a pre-made subscription system.
Luckily Stripe makes it incredibly easy to roll your own subscription system.
We certainly understand that for some specific billing situations, Stripe's subscriptions API may not be a good fit. That said, we've tried to accommodate as many use cases as possible, and I just wanted to make sure you knew we have a prorate => false flag that you can pass when switching subscriptions. We also have a concept of usage-based charges (invoice items). Your larger point of course still stands (that there are always going to be edge cases and custom billing logic).
I think the best approach for you would be to keep one or two simple subscription cases and suggest your other customers who ask for edge cases to implement their own subscription system.
I wish you gave me that "do it yourself" recommendation - that would save me a lot of time (trying to squeeze what I need into subscription model that Stripe has).
Now that I do subscriptions in-house only - I don't even need to know what Stripe web-hooks are, what are all these possible subscription models and what are their limitations. Just two simple calls: one to create stripe customer and another to charge it when I need.
For example, I personally don't like prorating costs. I want my customers to be able to make changes and play around with the new features before deciding to pay. I also don't like the idea of having a few plans and forcing every single customer into one of them. I want everyone to use the software how they want, and pay based on that usage. These are important business decisions that would be impossible (or at least very difficult) if I used a pre-made subscription system.
Luckily Stripe makes it incredibly easy to roll your own subscription system.