This PR lets the compiler treat per-constructor `noConfusion` like the general one, and moves some more logic closer to no confusion generation.