There is no built-in facility to support such scenarios. As a general
rule of thumb, a facet should only interact with facets it depends on
(come before it in the install order).
I would recommend making the web.xml change that makes sense for the
JSF-only case in the JSF install delegate. A facet that depends on JSF
would then override the change in it's own install delegate. This might
seem less-than-optimal, but this way it is much easier to make sure that
the right thing happens in all cases. For instance, the "facets A and B
installed at the same time" case should ideally behave identically to
the "facet A is installed first, then facet B is installed some time
later". This approach also makes it easier to figure out what should
happen on uninstall.