"The new RLP code also repurposed a flag" - this is the moment when terrible software development idea was executed that resulted in all of the mess.
Of course I don't know the full context and maybe, just maybe there was a really solid reason to reuse a flag on anything.
What I observe more often is something like this though:
1. We need a flag to change behaviour of X for use case A, let's introduce enable_a flag.
2. We want similar behaviour change of X also for use case B, let's use the enable_a flag despite the fact the name is not a good fit now.
3. Turns out use case B needs to be a bit different so let's introduce enable_b flag but not change the previous code so basically we need them both true to handle use case B.
4. Turns out for use case A we need to do something more but things should stay the same for B.
5. At this point no one really knows what enable_a and enable_b really do. Hopefully at least someone noticed that enable_a affects use case B.
If you have an use case A, create a handle_a flag. If you have a use case B create handle_b flag even if they do exactly the same thing as more than likely they do exactly the same thing only for now.What would probably be even better is separate, properly named config flags for each little behaviour change and just use all 5 of those to handle different use cases.
edit: formatting