Thanks for the additional information! I'm glad to hear he isn't acting ill.
A foul odor to the breath can indicate those things we have already touched on....dental disease, infection, etc. It can also indicate dehydration, diabetes, or sometimes advanced kidney disease. Some foods will make the breath smell different than others.
I find it hard to believe, unless you have recently had his teeth cleaned, that a 5 year old cat wouldn't have any signs of dental disease. Were you there when the vet checked the teeth and did he look clear back at the rear molars? Tartar buildup and gingivitis (red gums) is extremely common in cats because of lack of daily care. Some of the high carbohydrate foods, especially dry, can also contribute to dental disease. If he will let you, pull his upper lip all the way back until you can see is upper back molar. If you see any tartar accumulation (usually a brown or rust colored hard substance), or if his gums look red where the tooth meets the gums, then this is dental disease. It can be a health risk, just like in people.
The other disease processes I mentioned are less likely at his age but could be easily ruled out by lab work.
The current theory is that most cats on dry food are dehydrated. Most internal medicine veterinarians and feline specialists are recommending an all canned food diet. I know most have been told by a vet that canned food is bad for the teeth....this is only partially true. Please visit this website for more information on what you should be feeding your cat to keep him healthy. www.catinfo.org.
If you check his teeth and they look good, you may want to get a second opinion. You can sometimes find a vet that has a specific interest in cats at www.catvets.com.
I hope this helps. Let me know if you have any additional questions.