My proposal doesn't seem to me to compromise human readability and editability (and certainly doesn't compromise version control) so just to make sure we mean the same thing, an example:
space update mydeck.spc
where mydeck.spc = "
The [quick] brown fox jumped over the [lazy] dog.
;UID=SDFGHJKERTYUICVBN;
Three commonly-used nonsense variable names:
1. foo
2. bar
3. baz
;;
OCaml :: A fast, functional, strongly-typed programming language.
;;"
would find in the deck the first note using the NID, and then add the second and third (having no NIDs, they cannot be found), generate new NIDs, and update mydeck.spc to something like = "
The [quick] brown fox jumped over the [lazy] dog.
;UID=SDFGHJKERTYUICVBN;
Three commonly-used nonsense variable names:
1. foo
2. bar
3. baz
;UID=LUKAGSDSDFGHJKEE;
OCaml :: A fast, functional, strongly-typed programming language.
;UID=HJKERTYUIVHBFJVBN;"
which you can then checkin. The only edit we would expect users to perform on an NID is to delete it when copy pasting to assign a new NID to the edited version, and that is certainly feasible. Do you still find this objectionable?
I've tried space. About sharing: how about having unique textual IDs (say, UUIDs) for each space entry, that get carried around in cards and used to update cards in place?
Then space entries.spc deckname would update the entries in deckname, but also invent and add such IDs to any entries in entries.spc that are missing them. Then all we need to take care with is to only check in spc files that have IDs for all entries, which also serves to ensure the spc file is used at least once before checking in.
Since the ID is per space entry, not per card, need to figure out how to deal with intervals. Inheriting the smallest interval in any related old cards for all new cards seems just-workable, but not elegant at all.
But I think the proposal of this page is great, and update would be necessary, so why not. The other approach that might be better would be to change anki itself to use textual sources natively, but that would probably be a much larger change.
Though, honestly, what matters more, copyright law or raising the sanity waterline?
The choice you offer is false, in my opinion. If you violate copyright law, you will never gather a community effort, because who wants to work on something that can get DMCA'ed out of existance at any moment?
I think CC-BY-(maybe SA) will work fine, and just use appropriately licensed basic sources like wikipedia.
The more nebulous, the fewer contributors. I certainly would prefer to contribute to properly licensed projects; I've had the fun of putting work into a project that for silly license reasons couldn't get into Debian/GSOC/... I'm willing to forgo it in the future.
I haven't done any deck making, so give this low weight, but I imagine a truly collaborative and creative joint project where making up, say, fallacious arguments -> fallacy name notes that are actually challenging is half the fun, and the benefit of copy-pasta is small anyway.