Maybe it's an idea to model this by using the a segmented part of the pillar and then using some mirror modifier which use clipping at the mirror axis like so: With this there is no overlapping and the non-mirrored part could even be used as a module..
I usually just keep separate columns , do copies , do boolean union of them , make vertex auto merge by small distance to weed off redundant vertexes , make the intersecting edge split , then transfer normals from original columns to each split mesh accordingly . No shading artifacts at all . Done. Always perfect shading…