I've been using the portable sync features for a long time and have always found them to be excellent (the best I've seen).
Normally I sync to an <AlbumArtist>\<Album>\<FileName> structure with M3U playlists as the primary way I use my portable devices, especially in the car. And this has worked beautifully in the past. However, I recently got a new car and unfortunately the USB support is shockingly bad: unusable navigation and no playlist support. So, the only workable option is to use a folder per playlist structure.
I was very happy to see MusicBee had this option, but noticed a couple significant issues after using it:
1) When using the "folder per playlist" option, the encoding doesn't respect the number of threads option. I have the encoding threads set to 4 to utilize all my cores, and with normal synching this works as expected. However, with the "folder per playlist" option it only encodes one file at a time. I didn't think this was that big of a deal at first, as I only expected it to matter for the initial sync when I was loading 1000's of files. However it exacerbates problem 2 on every subsequent sync.
2) Once you've synched the device, subsequent changes to the playlist in MusicBee can cause the entire playlist to have to be re-encoded the next time you sync. I guess this is because the hard-coded file name format includes the playlist track sequence number. So if you insert a track at the beginning of the playlist, all subsequent tracks get a new sequence number, which I guess causes MusicBee not to recognize that the files are already there, causing them all to be re-encoded on the next sync. This is really a drag, especially when combined with problem 1, as it can take a very long time to re-encode long playlists. It seems like it should be possible to recognize which files are already present on the device regardless of sequence, rename them with the correct sequence and then only encode new/changed tracks.