My GUESS at how the stable would work is:
Please note this is largely speculation based on my moderate knowledge and experience working with mysql databases for php. Reality could be very different
One table with all possible pets, what base abilities they have, etc.
That one table would have ALL the pets.
On the character table, or something similar, there would be ONE "box" so to speak which would have our call pets (or maybe one for each call pet...). That pet would be referred to by the unique ID given to it in the first table.
How I could IMAGINE it would work in game is(assuming we're starting with no pet, and calling one):
Look up the hunter and Check the hunter's "on call pets" (one search here)
Move "on call pet" to "active pet" (modification)
Look up pet in the pet table, join with possible pets table and get: model, name, abilities, talents (another search, this time in a larger database, and searching two at once).
They might use a separate database for stabled pets... but I'm not sure to be honest. That would potentially require a LOT of data changing in the database, which can be pretty intensive too. Especially if anything is getting "deleted", as deleting rows (or entries) from a database still bogs it down. However, considering that pets don't often/usually lose their talents when stabled, I'm not so sure. If there WAS just a stable DB, I'd imagine it would just be "name" "character" "unique ID" "animal Id".
Sorry.. I might be thinking this through too hard, haha. The topic has made me realize how much I miss coding (and figuring out the puzzles of how things work)

I should work on my game some more, heh.
But yeah.. in short.. either way, it wouldn't be a problem... until it is. I mean.. I know that I would prefer not to have to have lag when I open my stable and wanna test out many "older" pets just because now blizz allows unlimited pets and there's a band of people who's set out to tame EVERY model there waver was... It's comes down to finding a balance of giving people enough slots to be satisfied, while make sure that it's not too many to cause issues.
I see arguments of both sides, and I DO agree that people should be able to play however they want. But I just don't want that to mess with the ability to actually have the game run smoothly... or have maintenance last twice as long because now the pet tables are 10 times as large (probably over exaggeration, but it could still happen).