If the use-case is unrestricted Lucene syntax w/ dismax then Enhanced Dismax is the way to go. What I'm shooting for in this issue is a more extensible query parser. E-Dismax is cool but it doesn't look particularly extensible.
For example, in an app I support, I use this patch to do several things:
1. check if appears to be using fancy Lucene syntax and if so then treat as such.. but with dismax of course on non-fielded clauses via SOLR-756
2. If one clause then rewrite query to: clause clause^0.5 – i.e. search for clause and also include partial matches. For a small index I have this is fine but I can use n-gram some day if I need to.
3. If multiple clauses then rewrite query to: clauseA clauseB clauseC clauseC*^0.5 (clauseC is last clause).
What I'm hoping for is for Solr to offer better query parsing infrastructure so that I can implement my parsing needs by re-using/plugging into as much as already exists as possible. Committing SOLR-756 is one step there... but then there's some useful capabilty in DismaxQParser like boost queries, boost functions, q.alt. min-should-match is relatively re-usable since it stands alone.