This behavior is intentional. Making such restrictions makes it very difficult for users to make changes. For example, to change the attribute used for a limit, they would first have to run builder to remove the trait, then rerun to add the trait back.