There was a discussion about that. I don't have the link right now, but if I remember correctly, some people stated that cachorro is used in Portugal, with the meaning of "puppy". To my knowledge cachorro isn't used in Brazillian Portuguese with the meaning "puppy", its usually just used for "dog". :)
So to your question, yes and no. But if you're going for purely Brazillian portuguese its probably better to just associate cachorro with dog!
That's an antiquated slang term in English - calling someone a dog and calling someone a scoundrel were at one point essentially the same, although it is no longer in common usage. Many dictionaries still show scoundrel as a homophone for dog, but in this context it would simply be wrong.