Const used to be mostly for global values, but with the current const improvement, the places where they can be used has increased a lot and I have the feeling the current formatting rules does not fit anymore.
For me the main interest of the current use of screaming case on constant is to distinguish global variables. But with const improvement, a lot of the constant will be local, so we loose this particularity. I know we can already use const locally, but it nearly never happens, even the name of the warning when you use low case on a local const is non_upper_case_globals.
Since there is not really a huge difference in the way you use a local const and a immutable variable, the different notation is really disturbing to me.
Another problem is that generics are usually one long. One letter types parameter and one letter const parameter are indistinguishable.
So i propose to change the current rule to request screaming case only on global variables, local variables should be snake case, even if they are const.
An alternative solution to that is to stop recommending single letter generic names.
When there's something semantically meaningful to a generic, I try to give it a meaningful name (e.g. fn fold<Acc, Fold> instead of fn fold<B, F>). Even without having const N in the mix, I've found this increases reachability.