The ResourceTrackerImpl class detects the presence of MyFaces by simply checking if the org.apache.myfaces.shared.renderkit.html.util.ResourceUtils class is available in the classpath. This is not sufficient for scenarios where MyFaces is present in the classpath, but not the currently running JSF implementation.
I encounter this scenario when deploying a Mojarra based application to IBM WebSphere 8.0/8.5, which contains MyFaces as it's default implementation. The application runs with Mojarra, but RichFaces thinks it should run with MyFaces. I fixed this by checking the current active FacesContextFactory.
This works pretty well as it bases the decision if ResourceTrackerForMyFaces should be used on the fact that MyFaces is really running and not just available.
We already had the same issue with Spring WebFlow, which had pretty much the same mechanism in place. This was fixed after
https://jira.spring.io/browse/SWF-1641 and https://jira.spring.io/browse/SWF-1650 and now performs very well.