Yeah, the downside would be more of a potential workflow and organisational thing. The more individual stuff you have, the harder it gets to start updating things. If you're happy enough with that (ie, if there are only going to be a handful of different material derivatives), then yeah, just duplicating the material in the hierarchy would probably work fine.
If you want to see the material instances in editor mode, you could also try using ExecuteInEditMode
in the script that does the tinting. You'll get error messages about leaks, however (which can more or less be ignored in this case).