yes, bech32 makes sense for a binary key, but there's not a strong reason to encode the text-based data within the bech32 data
nostr: would be more similar to magnet: URIs then one drawback is that naive, ad-hoc, usually regexp-based parsers have problems with complicated URIs, and highlight the inner URLs instead of the outer one for example in nostter your post looks like https://media.x0f.org/12771040ca3301a3b1529cc0f4dde34875afe938fd13238d84aa72c5f55a3faa.png but that's not a good reason not to do it
needs some work… I’m leaning toward nostr: npub?r=relay.damus.io https://i.nostr.build/SneWOs8RHPpd3wpM.jpg