OK so I wouldn't normally ask for this since it's only to support modded functionality, not in-game functionality; but Thanks FantasticDorf for reminding me that this applies to vanilla Gremlins, as well as to modded animal-people! So this is a perfectly valid vanilla suggestion.
If I'm correct this should only take a single if statement and maybe half a dozen lines of code.
Background
I have modded my animal people to be [PET_EXOTIC] since 0.34. I started doing it in order to slaughter them and use their bones, since they weren't good for anything else and they were filling up my cages; but since the advent of visitors, trained wild-caught animal people have essentially functioned as fortress permanent residents, including claiming rooms at the inn, and petitioning for citizenship after two years.
I like this, but there are some problems:
The Problems
First, although they act like permanent residents/citizens in every other way, wild-caught animal people's [v] description always just gives their species description and wounds. I know they have thoughts because I can read some of them with Dwarf Therapist - we just can't see them in game.
Similarly, their labor-setting dialog is the pet labor dialog, even when they're citizens. Since I know that (modded-to-be-tameable) animal people who joined civs in worldgen and then petition for citizenship later are able to have their labors set, I know it's not simply a matter of tameable creatures automatically getting the pet labor dialog.
Third, since they're wild-caught, they need to have their training kept up; but as productive members of the fortress, they assign extremely low priority to getting caught up on their training, which leaves the animal trainers waiting around for them while they Perform in the tavern, for example. This ties up trainers for ages and lets their other charges get out of hand. However, since they're now citizens of the fort, the animal people no longer show up on the Animal screen and their training assignments can no longer be changed!
And if you pre-empt the citizenship request and turn off their training just before they become citizens, you have another issue: once their training decays back to Wild, although they continue to behave as normal citizens, your traps and info screens now treat them like any other wild animal.
So, the solution I would like to propose:
The Possible Solution
An extra "if" statement in the code for accepted citizenship requests. If the person making the request has training levels, then set the flags and linkages necessary to resolve the above issues. If I'm correct, it should be a matter of setting their training levels to 0 and then moving them from a "pets" array belonging to civ X to a "person" array belonging to civ X.
Also if they don't have a name you might want to have them adopt a name at this time, but that's not a big deal.