I did another alternative for this one. The idea is do not take into account ids from components descending UILeaf (html markup) in production by default and do not use the parameter. Maybe we can combine both strategies, allowing org.apache.myfaces.CHECK_ID_IN_PRODUCTION with these values:
true : Check all client ids, including UILeaf components
auto : Check only client ids of components that does not extends from UILeaf.
false : Do not check for duplicate ids in production.
I think the advantage of the "auto" mode is that improve performance and reduce memory usage, and catch all duplicate id relevant cases (remember that facelets generates ids always starting with j_id_ , which is a reserved prefix for generated ids).
If no objections I'll combine both patches and commit the resulting code soon.