Discussing some extval stuff, it was found myfaces always try to retrieve the renderkit factory to get the current renderkit, ignoring the method FacesContext.getRenderKit().
FacesContext implementation cache a renderkit factory instance and on that place we could cache the current renderkit too. Doing some tests with extval on mojarra we discover that it creates very few instances (between 2 to 4) and myfaces creates many of them, because extval renderkit create wrappers over and over and myfaces does not cache them.
In theory, the renderkit instance used is per view, so in a single request it is expected this instance changes by most twice. I think we should commit this change on all branches (1.1.x, 1.2.x and 2.0.x).