The actual performance of the implementation. We've measured the performance of the current implementation and the overhead is non-negligible. I agree that if the proposal is to reread the context-parameter on each call, that would be far too expensive. Faster, if grosser implementations could involve storing a final boolean on the UIComponent.
Due to our iron-clad commitment to backwards compatibility, we keep the public static final String constants, but alter the behavior, providing a context-param to restore the old behavior. The constants will only be honored if the context param is set.
Couldn't you modify the map to return the constant values for the proper keys? That way, they would be read-only values that don't need to be stored, the Map just needs to know the keys.
FacesContext.getAttributes().get(UIComponent.CURRENT_COMPONENT)
UIComponent.getCurrentComponent()