It used to be that images just south or east of 'you' were drawn semi-transparently so as not to obscure the player. This was a good idea but in practice was a source of much confusion ('why is the beholder partly invisible?').
I think this may have been because it was done on all objects, eg, walls and mobs.
Also it was, with exceptions, unnecessary because we didn't have many 'tall' objects (nearly all walls were of the double variety where they are only drawn at half height in those positions anyway, so the problem is fixed without the need for transparency.
When we went to truecolour, this ability to transparentise graphics on the fly was lost. But this wasn't a problem, considering the last two paragraphs.
However, with some of the new hq graphics it is becoming a problem.
The most extreme example is some excellent tall trees TPK (the artist) and I (the coat-tail hanger-on) are working on (see
this thread)
These look great:

Until you walk round behind them:

So perhaps an answer would be to extend the client's handling of .u/.d images to also handle .t (for transparent) images.
Simply, there would be two images for objects which needed transparentising. The first would be named image.101.png and would just be the normal fully opaque image. The second would be named image.t.101.png and would be the same image at, say, 40% opacity. The face in the arch would be this second image.
Thus we'd add a new flag to map.h, FACE_FLAG_TRANSPARENT. Then add a couple of line to client.c. This:
/* check for the "double"/"up" tag in the picture name */
if ((stemp = strstr(buf, ".d")))
FaceList[pnum].flags |= FACE_FLAG_DOUBLE;
else if ((stemp = strstr(buf, ".u")))
FaceList[pnum].flags |= FACE_FLAG_UP;
Becomes this:
/* check for the "double"/"up"/"transparent" tag in the picture name */
if ((stemp = strstr(buf, ".d")))
FaceList[pnum].flags |= FACE_FLAG_DOUBLE;
else if ((stemp = strstr(buf, ".u")))
FaceList[pnum].flags |= FACE_FLAG_UP;
else if ((stemp = strstr(buf, ".t")))
FaceList[pnum].flags |= FACE_FLAG_TRANSPARENT;
Then in map.c after the code for FLAG_UP (which only draws those objects when they're north or west -- basically -- of the player) we add similar code for FLAG_TRANSPARENT (it draws the .t image or not .t image depending on the object's position relative to the player. So instead of the second image we get something like this when the player is behind a tree:

I'm not clear enough on the client code to implement this properly, but I think it would work:
A drawback is that it would need extra memory to store two copies of the graphics, but I think we're past worrying about a few k. Also, only specific images would be done.
???