CLM_NAMELIST_OPTS should not allow items changed to also be in user_nl_clm
This is maybe technically not a bug, because it's working as it's designed. But, it has caused many people to take a long time debugging without a solution, until we point it out to them. So this would really help with the usability for the larger community of the model.
The problem is that you can put the same namelist item in both CLM_NAMELIST_OPTS as well as in the user_nl_clm file. The precedence rules as designed allow this and give higher priority to CLM_NAMELIST_OPTS. Thus it uses what's in there and ignores what the user added to the user_nl_clm file. So they think they changed something, but really didn't. This especially problematic for B compsets because they explicitly set CLM_NAMELIST_OPTS, so the user changing what's in user_nl_clm will be ignored by something that the compset set for them.
The behavior that would make this more clear for users would be to disallow setting the same thing in both CLM_NAMELIST_OPTS and in user_nl_clm, and to die with an error telling the user to change one or the other.
Technically we also have a problem in user_nl_clm in that you can set the same thing multiple times in the file, and only the last setting will be used. However, I think that's easier for users to see that it's a problem and figure out what to do. I also think it would be harder to detect in our current code than for noticing something set in two different ways.