Get stainless steel for smells, just don't marinate tomatoes in it
Stainless steel is clearly better than plastic for keeping food from absorbing odors, and it’s safe for acidic foods like tomato sauce — though tomato sauce can taste a little metallic if it sits in there for hours.
Plastic is porous at a microscopic level. That’s why your cheap Tupperware still smells like last week’s bolognese after ten washes. Stainless steel isn’t porous, so odors don’t soak in. It also doesn’t stain like plastic does with tomato-based food.
As for acidic foods: you’re fine. Food-grade stainless steel (look for 18/8 or 304) won’t leach chemicals like some plastics can. The catch is that acids can react with the steel enough to create a slight metallic taste if you pack tomato sauce in the morning and eat at noon. It’s not harmful, just noticeable. Also, scratched stainless steel makes that reaction worse, so don’t scrub it with steel wool.
If you’re worried about flavor, use a silicone cup or a small glass container inside for the saucy stuff. Otherwise stainless steel is the better choice for most lunches.
Future You will appreciate not smelling last Wednesday’s curry every time you open the lid.
