Firstly, what's the practical intent for not using SETCURRENTDIR$ because I have no idea why you are avoiding it really.
PLAYMUSIC file$,loop% alone seems to only accept file names, as stated in the help file, rather than full paths.
For example, this doesn't even work: PLAYMUSIC GETCURRENTDIR$()+"Media/Music/song.mp3",0
So the SETCURRENTDIR$(path$) must be reset for each music file for DOESFILEEXIST() to perform correctly.