First one how Primal works, just not using a proxy relay but a caching server, so this might be how many nostr clients end up working in the future. For the second one, kind:0 events would work fine, but there are no shortage of kind numbers and not using kind:0 means not getting that data accidentally wiped by some other client.
For the third one I was referring to this idea by Fiatjaf: nostr:note1k2deqeq0c4kcwhq93hcmw0gh9hvy348tryepnpfv939vg6g0m9usxfyg2c