Regarding item 2: Circa 1984 when 370/XA was announced, I was working for an IBM competitor (Amdahl), and we did a fairly thorough analysis of the rationale for the 31-bit architecture. Somewhere around 1981, IBM had extended the real addressability of the 370 architecture with 26-bit real addressing, but this did nothing to extend the 16-bit virtual limits of individual address spaces ... and it was a very short-lived dodge around what was really needed.
One of the key design features of 370/XA was the ability of a problem-state program to switch between 24- and 31-bit addressing mode without any operating-system assistance. To that end, BASSM and BSM were introduced with the intent that they be the principle call/return instructions for all new programs. (see SA22-7085-01 p. 5-9). In order to make this fly without a drastic redesign of call/return conventions, there needed to be a way to retain and restore the AMODE of the caller ... without any additional baggage in the register save area. Stealing bit 0 of an otherwise 32-bit address was the easy solution. (And, of course, few people imagined needing more than 2 G-bytes virtual back then.) With the advent of z/Architecture, a similar means of problem-state linkage — and AMODE switching — was needed, but now it had to accommodate three AMODEs. Utilizing bit 63 of the instruction address (which, because instructions are always on a halfword boundary, could never be used to address an instruction) proved to be an interesting hack to accommodate the 64-bit AMODE. Had the 370/XA designers used the rightmost bit of the instruction address (bit 31 at the time) for the AMODE 24/31 differentiator, it might have provided 4 G-byte address spaces and extended the life of XA and ESA for a few more years. In that case, z/Architecture could have used bit 0 of the instruction address for the 64-bit indicator. With 20-20 hindsight, this might have made more sense since XA only extended addressing by 128 times, whereas z/Architecture extended addressing by a factor of 8 billion, so stealing bit 0 of a z/Architecture address seems to make more sense. However, 20 years after the introduction of z/Architecture — and nearly 40 years after the introduction of 370/XA, this is water over the dam / under the bridge / down the drain (pick your analogy).
