Indeed, Bill, I discovered this small requirement immediately after posting and when doing a small test using INLINE tables.
It must be like that because NullAsValue is like a field attribute, and not some quality of an arbitrary column. Also you cannot apply NullAsValue retroactively (it's more like a switch, a bit like the QUALIFY statement), and there you have it. Mixing field values from before and after NullAsValue will never produce the exepected result when JOINing tables.
In any case, many thanks for your feedback and confirmation.