But in current versions it dropped the subfolder and kept only the specific chds file's folder like so;
C:\roms\sfiii3\sfiii3.chd
This way was always the official way to do it, IIRC.
(You still can do it the first way you listed if you add the chd folder to the rom path in mame.ini.)
And just to repeat vorghagen, the chd name doesn't always match the rom name. The folder the chd is in should match the rom name. For example, for bm7thmix, the chd is b07jab11.chd, and you need
c:\roms\bm7thmix\b07jab11.chd