Fortunately, even though it is only 7am here, I get up at 5am and hence have had breakfast and three cups of coffee, so my brain was able to unravel what I think is where you may have gone wrong in your reasoning.
I think you have intermixed compile time with execution time in your reasoning. Here is your code:
GET VIEW1 171 /* TKS = TRUE
WRITE ’ TKS’ TKS /* no NAT0434 here /* physically preceding GET is VIEW1
WRITE ‘VIEW1.TKS’ VIEW1.TKS
WRITE ‘VIEW2.TKS’ VIEW2.TKS
define subroutine view2get
GET VIEW2 2 /* TKS = FALSE
WRITE ‘SUB TKS’ TKS /* no NAT0434 here /* physically preceding GET is VIEW2
The WRITE after the PERFORM defaults to VIEW1 (physically preceding). At execution time, the preceding GET is indeed VIEW2. BUT, Natural had to decide at compile time which GET dictated the first of the three physically contiguous WRITEs. Hence the selection of VIEW1, not VIEW2.