The main opposition to deploying a WAR containing both the T4 and the T5 libraries is class name conflicts in the org.apache.tapestry package.
For a brief time, it was considered to rename org.apache.tapestry to org.apache.tapestry5.
However, more research shows that there are only three naming conflicts:
These could be rename or otherwise refactored to avoid the conflicts.
In theory, and with a small amount of configuration, it should be possible to run Tapestry 4 and Tapestry 5 side-by-side in the same WAR. The shared third-party dependencies, such as commons-logging and Javassist, should be compatible.
T4 Friendly URLs might have to be disabled, however; otherwise it becomes very difficult to determine which requests are for T5 and which are for T4.
Tapestry 3 has no overlap with Tapestry 5.