I use precise (x,y,z) rather than tile coords for all my objects (some walls included). I update the tile collision map depending on the position and size of each object. The "size" is the size of what you call "the anchor" (Why do I feel like Dr.Evil with all those quotes

).. I.e. if a tile is 40 world units, and a tree base is 80x80, it takes up 2x2 tiles. This is not 100% accurate since a tree with base 60x60 would also take up 2x2 tiles, but that I can live with.
Reg. drawing order, simply transform world(x,y,z) to "screen" (x,y,z) using isometric mapping, and sort according to screen Z. Obviously this is in effect midpoint sorting, so it won't work for cyclic overlap.
Reg. not splitting your objects; Unless you want to use a Z-buffer, you have to split your object into "convex volumes" to avoid problems with cyclic overlap.
/Niels