As for tileToFlxSprite i saw this but i was afraid that it slow down rendering (which you confirm in your post), a mean HaxeFlixel should just have some FlxTile which is optimized, than use generic FlxSprite. Also having tilemaps as single objects is somewhat stupid from gaming approach since it's doesn't allow any depth sorting so it aren't useful in creating more complicated games.
Your second proposition is simple and i use at beginning but it doesn't resolve since object on middle layer always drawn besides foreground, so even if logic says that character is down from tree it still drawn behind.
Your first proposition seems at best something that is use tilemap for background and else are objects, which will be pain from creating maps, besides if we use that approach why just don't create a painted background and add to this object?? It lose all advantages of creating game map from tiles, and it didn't give any pros if we don't have artist who will create background and objects.
As your third proposition i'm not quite understand what you mean, but from what i understand you propose that every sprite (or character in this case) should cause to tiles behind them to be changed to FlxSprite and then sort them by depth, which might be good idea to just show on right position, but if i plan add also shadows and lights to map i need to think about it to be actual doable.
Myself i thought about manipulating directly bitmapData, but since must say i don't know how it is optimized in haxe i'm afraid that is also something which will slow down game (To be truthful i need a pixel manipulation since i need to tint bitmap with map of tint which depends on lights, shadows, and time, so just copy tile to tile with copy pixels doesn't resolve my problem).