I agree that animals should never be a total surprise gift. Unless, like other people have said, it was known that the person really wanted one (spouse/significant other/ child) and you held off on giving them the pet until their birthday or Christmas.
I got Pola from my boyfriend for my birthday 2 years ago, but I was browsing Jags sales list, and showed him the picture and how cute he was and Darren said if I really wanted him, he would buy him for my birthday. So, wasn't a total surprise and I was the one who picked him, got his supplies and picked him up.
I bought my friend a chin for her birthday, but she had one chinchilla already, and had been adoring the chin on the forum here for a while, and was so sad when someone showed interest in purchasing him. I talked to the person who was interested, and explained how enamored my friend was with him and how she really had fallen in love with him. Said person said they were fine with letting me buy him instead (they were buying him to breed, if I recall correctly) Which was very kind of them. I talked to my friend first, Ok'd everything with her, then went ahead and paid for him and arranged getting him.
There are rare occasions where pets are ok to give as gifts. But it should only be done if you are 100% positive the pet is wanted, will be cared for, and won't end up back at the shelter or a rescue. And you can't really know that unless the person knows about the pet to some extent, or if you're the parent of a responsible child, who is willing to take over care if the child does get tired of it.