"previous behavior" (incremented position) is simply NOT linked to front vs. back. I'm not sure why you are claiming that it is!
Indeed these issues are unrelated, and backward n-graming doesn't cause highlighting issues. Sorry if I seemed to mean the opposite, it was not intentional.
My main motivation was to fix the positions/offsets bugs. I also deprecated support for backward n-graming since there seemed to be lazy consensus: as Uwe noted, backward n-graming can be obtained by applying ReverseStringFilter, then EdgeNGramTokenFilter and then ReverseStringFilter again. This helps make filters simpler, hence easier to understand and to test.
So now, here is how you would use filters depending on whether you want front or back n-graming and with or without the new positions/offsets.
|| previous positions/offsets (broken)
|| new positions/offsets
| front n-graming
| back n-graming
|| ReverseStringFilter, EdgeNGramTokenFilter(version=LUCENE_44,side=FRONT), ReverseStringFilter
It is true that the patch prevents users from constructing EdgeNGramTokenFilter with version>=LUCENE_44 and side=BACK to encourage users to upgrade their analysis chain. But if you think we should allow for it, I'm open for discussion.