If I were going all out on the autopasture feature, then I'd have the user put the cursor over a pasture and type a command to add it to the list. It would store a list of flagged pastures and their sizes. You then use a separate command to specify "Keep llamas pastured." It would skim the raws to check the grazer tag on llamas and assign them to different pastures based on their grazing speed. Like, if we find that llamas need 5 tiles of grass to self-sustain, and you make a pasture zone 24 tiles large and another that's 6 tiles large, it would automatically put 4 llamas into one zone and 1 into the other.
Of course that would rely on a formula that compares the grazer and trample tokens to figure out the tiles needed per creature, but would be very nifty if it worked at all.
As a simpler solution, the player could make a pasture zone and then put the cursor over it and specify "this zone can support 3 llamas." Then when autopasture was enabled, it would find any llamas that were not assigned to a pasture, and it would dole them out to any pastures flagged for llama use. If a llama was removed by some means, then it would recognize that there was open space and would place another llama there if available. If there were more llamas than there were available pastures, then it would dump them into a "default zone" or could just let them roam free.
This method would also let you keep a war dog pastured at the entrance, even if the previous dog was killed, by letting you specify "autopasture dog war". The flags would probably include male/female, war/hunting/untrain/unspecified, egg, sheer, milk, graze, and anything else I might not have thought of. That way you could specify things like "keep all the milkable creatures closer to the farmer's workshop" or "don't put any grazers here" or "make sure there's a war dog staring at my mayor as he sleeps".