If the program is presented with a situation where the walls are not perpendicular this solution will not be shown. Other conditions the program looks for are: - parallelism - intersection - coincidence - alignment - order - ... For example in this case, the program memorizes that the column is on the face of wall:
It means that, when presented with a column that is not on the wall face the program will not apply the solution:
However, if you had a solution defined for the second case, then you could use it everywhere. The program considers the "face column" is a particular case of the "column in wall".