Here is an updated patch that just introduces LSN_FORMAT_ARGS(). I think the result is quite pleasant.
Thanks a lot Peter for producing this patch. I am fine with it. The way this is defined someone could write xyz = LSN_FORMAT_ARGS(lsn). But then they are misusing it so I won't care. Even my proposal had that problem.