After extensive testing I'm sure there's a bug with merged collection and recursive search. I'll illustrate it with an example were I'm using the launcher below for a PlayStation collection.
arguments = "%ITEM_DIRECTORY%\%ITEM_NAME%\%ITEM_NAME%.chd" -L "cores\mednafen_psx_libretro.dll"
Opening Tekken, located in "Games\System\PlayStation\Tekken\Tekken.chd" from the PlayStation collection:
[2019-01-26 01:57:59] [INFO] [Launcher] Checking to see if "M:/Media/Games/System\PlayStation\Tekken\Tekken.chd" exists [Yes]
[2019-01-26 01:57:59] [INFO] [Launcher] Attempting to launch: "C:\Program Files\RetroArch\retroarch.exe" "M:/Media/Games/System\PlayStation\Tekken\\Tekken\Tekken.chd" -L "cores\mednafen_psx_libretro.dll"
[2019-01-26 01:57:59] [INFO] [Launcher] from within folder: C:\Program Files\RetroArch
It does not load, as the directory is wrong.
Opening it from a merged collection:
[2019-01-26 02:10:22] [WARNING] [Launcher] Checking to see if "M:/Media/Games/System\PlayStation\Tekken.chd" exists [No]
[2019-01-26 02:10:22] [WARNING] [Launcher] Checking to see if "M:/Media/Games/System\PlayStation\Tekken.m3u" exists [No]
[2019-01-26 02:10:22] [WARNING] [Launcher] Could not find any files with the name "Tekken" in folder "M:/Media/Games/System\PlayStation\
[2019-01-26 02:10:22] [INFO] [Launcher] Attempting to launch: "C:\Program Files\RetroArch\retroarch.exe" "M:/Media/Games/System\PlayStation\\Tekken\Tekken.chd" -L "cores\mednafen_psx_libretro.dll"
It loads the game. Also notice how the "checking to see" lines have different results, even though it's the same argument used for both collections.
My conclusion is that merged collections remove 1 level for the folder structure when loading a game. This is also why when using "%ITEM_FILEPATH%" as argument, the merged collection doesn't work, because it removes the subfolder the game is located in.