When researching details for an answer to an XPath question here on Stack Overflow, I run into a difference between XPath 1.0 and 2.0 I can find no rationale for.

I tried to understand what `.` really means.

* In XPath 1.0, `.` is an [abbreviation for `self::node()`](https://www.w3.org/TR/xpath/#path-abbrev "A location step of . is short for self::node()."). Both [`self`](https://www.w3.org/TR/xpath/#axes "The self axis contains just the context node itself.") and [`node`](https://www.w3.org/TR/xpath/#node-tests "A node test node() is true for any node of any type whatsoever.") are crystal-clear to me.
* In XPath 2.0, `.` is primary expression "[context item expression](https://www.w3.org/TR/xpath20/#id-context-item-expression "A context item expression evaluates to the context item, which may be either a node (as in the expression fn:doc(\"bib.xml\")/books/book[fn:count(./author)>1]) or an atomic value (as in the expression (1 to 100)[. mod 5 eq 0]).")". [Abbreviated Syntax section](https://www.w3.org/TR/xpath20/#abbrev "The expression ., known as a context item expression, is a primary expression, and is described in 3.1.4 Context Item Expression.") explicitly states that as a note.

What was the rationale for the change? **Is there a difference between `.` and `self::node()` in XPath 2.0?**

From the spec itself, the intent of the change is not clear to me. I tried googling keywords like dot or period, primary expression, and rationale.