The individual ini system though (per-game, per-driver, etc) has been partly broken since the integration of the new UI (I think). It works as intended on the fist game you launch applying your settings following the hierarchy, but as you exit (esc or tab>select new title) and launch a different game; it's those first game's ini settings that will apply again, they 'stick'.
The only way to 'unload' the first is to restart MAME every time you change games.
This is not immediatly obvious to people who only set specific frame_delay, but if you add to your many ini's various things like individual HLSL, artworks, smoothing, scaling, output resolution etc, then it's clear that this is not fully functional.
I can't think of a workaround until the MAME guys manage to fix it, maybe everything stored in the cfg files would do? but that might mean a much bigger modification than a genuine fix.
edit: note I don't know in which build this issue appeared, for instance I dug up GM 0.179test and it's perfectly fine with multi-ini's. the more recent builds like the current 0.200 have the issue though.
Setting a single (rather 'weak') average frame_delay value in mame.ini unfortunately doesn't grant the best lag reduction performance to one's games folder considering how greatly MAME's performance varies from emulated hardware-to-hardware or game-to-game.