The Meaning of Life, the Universe, and Everything.
I've been using walls, bars, and stairs to decorate pillars and walls in a stronghold-like build, only to find them a bit frustrating to the point they look ugly without touching up with the Debug Stick. As it is now, walls, fences, and bars do not interact with stairs' partial faces; they do not consider upside-down stairs as full blocks in any capacity, nor do stairs have impact on the shape of stairs that are above or below. As an extension, walls, fences and bars leave something to be desired with ledges when used as railings. Furthermore, the presence of the "up" pillar is unnecessary with some wall shapes.
The first suggestion for all three is that when they are placed diagonally above an air block or at the end of a solid wall or blocks, they will blend with the edge towards the empty spaces. Along a ledge, walls take on the appearance of vertical slabs, while fences and bars simply shift. At the corners, however, walls will look like sideways stairs, with fences and bars simply have two faces (corner fences will have two posts, one on each edge). When there is a ledge on both sides and no other influences present, the walls, fences, and bars will remain centered as normal.
With the above in mind, stairs can be connected to walls, fences, and bars on all of the sides of the stairs. Fences can connect to the front of stairs, using only the bottom strut (or top if the stairs are upside-down). Also, upside-down stairs are considered whole blocks (except for the front if such is possible), or just make the "tall" default and the "low used for wooden gates. As for bars and stairs, it'd be nice if the bars conformed to the stairs above (upside-down), below, or around them, becoming only "1 pixel" wide along the affected axis/axes.
Lastly, I don't think the "up" pillar should be default except for standalone walls or when connecting to gates. I would guess that most, if not all the time, that corner/T-intersection walls have torches or walls (used as pillars) anyways, so builds that don't want them shouldn't be affected.
Again, this is just a rant of peeves with regard to trying to use them as wall decorations and how they can be improved there without breaking their general use. I'm also aware that this does dabble into more complex programming, since some of the changes are affected by more than adjacent blocks.