One of the suffering points of the JCP and the Java EE spec in particular is the fact that when new specifications are created, or existing specifications are updated, frequently it is either not practical or not possible to make changes in other specifications in order to "solve the problem the right way."
So in a sense, hacks are put in to the new or updating specification in order to work around these issues, when the real issue should be addressed in a different specification.
We even see instances of this happening when two specifications are active at the same time!
Consider CDI and JSF. The conversation scope clearly belongs as an extension to the JSF or Servlet specifications, not as a part of CDI that uses JSF. But because this was not discussed or simply to difficult to make real, we suffer from an inadequate conversation scope feature in Java EE.
Specifications should be made to update in order to support accepted features from other specifications.