If you have both of those at the same time, it’s absolutely a bug. Ugly is in Pretty’s cancelling mutations, and vice versa:
"type" : "mutation",
"id" : "PRETTY",
"name" : "Pretty",
"points" : 1,
"ugliness" : -2,
"description" : "You are a sight to behold. NPCs who care about such thing will react more kindly to you.",
"starting_trait" : true,
"category" : ["MUTCAT_ALPHA", "MUTCAT_FELINE", "MUTCAT_LUPINE"],
"cancels" : ["UGLY", "DEFORMED", "DEFORMED2", "DEFORMED3"],
"changes_to" : ["BEAUTIFUL"]