Thanks for the reply Scott.
You raise an interesting couple of points.
True, I am presuming that the SAS compiler is interrogating the SAS program source statements top-down and left to right. All source material I have seen to date, relating to SAS compilation, explains it that way.
Here is a link to some relevant material in the SAS documentation:
http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/a001071821.htm#super
Also true, I like to presume that SAS actually does store the variables in a particular manner. Case in point would be the use of the RETAIN to 'reorder' variables in a particular way in a data step, because we know what effect the RETAIN statement placed before a SET has.
What is clear here is that my understanding of the compilation phase is not complete enough to explain what is causing this unexpected (for me anyway) effect.
Thanks again for your input.
Chris...