A dog from a shelter, especially one in foster care they can tell you more about that dog, than choosing by breed to find that the dog you picked happens to not be a cookie cutter image.
You'd know with a shelter dog how they do with cats, and what their barking is like. With a puppy you may find it grows up to bark incessantly, which was an issue for me in an apt.
I agree that rescuing a dog that is fostered is a good way to know more about the dog, but my girlfriend really doesn't want a dog that isn't a puppy, and we both feel better about getting a dog we're going to have for a long time by picking a breed that has many qualities we're looking for and finding a very reputable breeder.
Our Bichon was about 16 weeks old when we got him, and the fact that he was that old (past 8-12 weeks) made it very difficult to train him and get rid of some of his bad habits that he developed at the breeder's home (she wasn't a good breeder at all we discovered after the fact).
I have rescued cats and even took in a pregnant cat, and after she escaped I had to bottle feed her kitten while it was still only 1 week old. We still have her and she's a great cat.
Dogs are much more high-maintenance and rescuing a dog is not usually the best option for someone who loves cats, lives in an apartment, and already has another male dog. It would be very difficult to find one that we know would fit our needs and get along well with our other dog and our 2 cats, and would not bark excessively and get us evicted, etc.