The PEP combines ideas from several different languages. For example:
* Both Dart and C# have "x ?? y" and "x?.y".
* Dart has "x ??= y" and C# does not.
* C# has short circuit semantics for "?." and Dart does not.
* PHP has "??" but does not have "?."
Wikipedia lists a lot of other languages, but I don't have enough personal experience with any of them to cite them in the PEP. This is why I use the phrase "other mainstream languages" multiple times.
If you think the safe navigation operator isn't presented clearly, I am willing to improve it. Is there a particular example that you're struggling with? The simplest explanation is that it works the way you would want it too, e.g. in "foo?.bar.baz", we don't want semantics that could lead to looking up "baz" as an attribute of None. Therefore, if "foo?.bar" evaluates to None, then ".baz" is short circuited — that attribute is not looked up.