Ideally if I place the playlist in top directory it should understand that I reference subdirectories. So if my playlist references
band1\disc1
band1\disc2
band2\disc1
band2\disc2
and I place the playlist in /favs it should know to look in appropriate subdirectories.
from what Llorean said this would work. I'm not aware that Rockbox strips multiple path elements until it finds the file but I might be wrong on this.
It could either be smart and recursively strip root directories until it finds a good match to the directory structure in the playlist or be dumb and require me to manually
erase root directory part of each reference (since m3u files are text files, this is easy).
Rockbox is partly smart but it tries not to be smarter than you. From what I know it definitely strips the leading drive letter if your playlist contains absolute paths.
Anyways, from you answer it seems it does neither and I can only create playlists when the player is physically available to me. Is that correct?
No. As I said above ...
You can always use playlists using relative file references (something I sometimes do) or replicate the folder tree on your PC.
Another thing that could be done and this is the best option really, is to have a tool which would look through the playlist, build a hash for each file and then search for matching hashes in the player files, then automatically rebuild the playlist for the rockbox player.
Errr ... what do you want to achieve? You can create playlists on the player, and you can also easily build a so-called "root playlist". You can even put all tracks in a dynamic playlist by using the database. I really don't understand why you would want to rebuild "the playlist for the player", especially not what this should be.
Or are you looking for a tool that replicates your database on the player and adjusts the playlists accordingly? For syncing the files are a few tools around, check the wiki (I think the page was called UsefulTools or something similar).