To be fair, the idea has never been to maintain two code bases, but to re-run the 2to3 when building/installing.
In practice, I find this quite pain to deal with (2to3 is slow, hard to use when you need to support python 2.3 or 2.4, etc...), and much easier to just do the 2/3 compatible source codebase. Various projects use the same approach, but this is a tradeoff that will depend on a per-project basis.