Draft: draft-ietf-jsonpath-base

Commentary: Centralize the text that explains how non - interoperable JSON may cause unpredictable behavior . This is a little clumsy as the sections to be referenced are currently unnumbered . 
 Solves a few " behaviours " , too :-) 
 This centralizing approach is a good thing . I suggest to reuse the phrase " duplicate names " for better recognition of the wording in RFC8259 , though 
 There may be scope for fine - tuning the section cross - referencing , but this can be deferred to purely editorial activity
Paragraph (version A):
The JSON value the JSONPath query is applied to is, by definition, a
valid JSON value.  The parsing of a JSON text into a JSON value and
what happens if a JSON text does not represent valid JSON are not
defined by this specification.
Paragraph (version B):
Specifically, the "Semantics" subsections of Sections dot-selector,
wildcard, index-selector, index-wildcard-selector, filter-selector,
and descendant-selectors describe behavior that turns unpredictable
when the JSON value for one of the objects under consideration was
constructed out of JSON text that exhibits multiple members for a
single object that share the same member name ("duplicate names", see
RFC8259).  Also, matching (selectors) and comparing (comparisons in
Section filter-selector) of strings assumes these strings are
sequences of Unicode scalar values, turning unpredictable if they
aren't (RFC8259).
Paragraph (version A):
The "dot-selector" selects the node of the member value corresponding
to the member name from any JSON object in its input nodelist.  The
behaviour is unpredictable if the JSON object has duplicate names.
Paragraph (version B):
The "dot-selector" selects the node of the member value corresponding
to the member name from any JSON object in its input nodelist.
Paragraph (version A):
A "dot-wild-selector" acts as a wildcard by selecting the nodes of
all member values of an object in its input nodelist as well as all
element nodes of an array in its input nodelist.  The behaviour is
unpredictable for an object with duplicate names.
Paragraph (version B):
A "dot-wild-selector" acts as a wildcard by selecting the nodes of
all member values of an object in its input nodelist as well as all
element nodes of an array in its input nodelist.
Paragraph (version A):
The "index-selector" applied with a "quoted-member-name" to an object
selects the node of the corresponding member value from it, if and
only if that object has a member with that name.  The behaviour is
unpredictable if the object has duplicate names.  Nothing is selected
from a value that is not a object.
Paragraph (version B):
The "index-selector" applied with a "quoted-member-name" to an object
selects the node of the corresponding member value from it, if and
only if that object has a member with that name.  Nothing is selected
from a value that is not a object.
Paragraph (version A):
An "index-wild-selector" selects the nodes of all member values of an
object as well as of all elements of an array.  The behaviour is
unpredictable for an object with duplicate names.
Paragraph (version B):
An "index-wild-selector" selects the nodes of all member values of an
object as well as of all elements of an array.
Paragraph (version A):
of their array elements or member values, respectively.  The
behaviour is unpredictable for objects with duplicate names.  Applied
to other value types, it will select nothing.
Paragraph (version B):
of their array elements or member values, respectively.  Applied to
other value types, it will select nothing.
Paragraph (version A):
The behaviour of a "descendant-selector" is unpredictable if the node
or one of its descendants is an object with duplicate names.