There's a fair amount of flexibility, but as you start moving beyond the basics and get into more complex programs, it gets a bit cumbersome; for example, flexible drip campaigns that can customize / change content based on triggers after the initial start. Some way of normalizing scoring so older, less intensive users don't overshadow newer, more-intense users. Etc.
For a basic setup and taking control of the user flow from contact to lead without leaks, Marketo is awesome, once you've got the core data governance and standardized processes in place.
Template design is difficult - designers find it restrictive and there is a LOT of debugging needed, with finished templates sometimes behaving very oddly in some environments - adding / deleting code snippets, disabling some scripts - not enough to break it, but definitely some odd behaviors.