You simply cannot go by "rich smell"-period.
The ONLY way you are ever gonna know if it's truly rich or lean is O2 sensor feedback. This, meaning you're gonna have to look at either fuel trims (OBD2) or KAMRF (obd1) and I doubt you have the capability to look at either one, thus the best option in that case is to pull the codes and see what you have. You should have at least one code. Just because you ain't got a check engine light on (or don't have a working light at all), doesn't mean that there arent codes stored. Dump the codes and see what she wants, go from there.
vacuum leaks. Carb cleaner trick only works if you have a big leak. A small leak, carb cleaner won't pick it up and the engine idle won't change. Secondly the O2 will read the rich mixture that the carb cleaner is forcing, and the eec will trim the fuel accordingly. Thirdly if you have a small leak and the leak picks up carb cleaner, the idle will start to rise or drop, the EEC will detect it (and O2 sensor change) in milliseconds, and will pull the idle back to where it wants to see it, thus the carb cleaner trick does not work. You have to use a smoke machine OR you can pressurize the intake via a home-made "boost leak tester" (google it). Do not exceed 10 psi if you do this. With a little pressure in the intake you can then spray some soapy water around all of the vacuum controlled components, intake system, throttle body, iac, tps, etc....a leak will show up. Smoke machine is the best option as it is very low pressure and very very easy to spot any leaks.