True, that's why we split the contacts to Private and Public.
Private (default) are wallet addresses you might pay in future. If somebody pays you by sending ecash over nostr, his nostr address is added, or you do that manually (paste, scan, write).
Public are follows by any npub you provide (and honestly, better option to tip them is likely to send a zap from nostr app and pay it from the wallet by deeplink or Nostr wallet connect)
The problem for me is I can't add any lnaddress from someone, let's say just a Strike user and tag with a name. This would be like the private contacts, as for the public contacts from nostr I wish I could add/pick the npubs that I wanted manually i wouldn't even need to have an npub myself or link my npub. The way i see it a contact is always an lnaddress, that is either "hardcoded" manually or it's "dynamic" because it's a nostr user and the lnaddress is what he has in his profile.
This makes perfect sense. As we deal with ecash, I optimized for nostr addresses, so that sending pure ecash works.
But I see that having pure lnaddress contacts should be possible.
Will think of it how to do it without adding too much complexity (I validate contacts against profiles onnostr relays etc...)