When I was part of a team which developed a tile-based 2d engine, we ran into the same problem. Placing a tree in a way that it layered correctly with player sprites required to place 3 tiles on 3 different layers. This was very tedious and error-prone.
But then we added the ability to add "oversized" tiles. We allowed tiles on the sprite layer to be larger than our tilesize (32px). The lower border of these tiles was alligned with that of normal sized tiles, but the upper border could exceed the tile grid. We ensured the correct draw order by painting the sprite-layer from top to bottom.
This made it possible to place high objects like trees with a single click and have them layer correctly with moving objects.
But there might also be situations where you have a multi-tile object which you don't want to layer with moving objects. A large pond, for example. In this case it is very useful when your map editor allows you to select not just a single tile from your tile palette but allows you to drag a rectangle on your tile palette and then place all the tiles in that rectangle with a single click. This was also useful in combination with oversized tiles. After a while the art department found that 2 tile wide trees allowed more aesthetically pleasing maps than 1 tile wide trees. So a tree now consisted of 2 ovesized tiles, both 96 pixels high. Allowing to multi-select from the tile palette also allowed to place them with a single click.