A pctrie search can begin at any node. If pctrie accesses tend to cluster in one index range and then another, starting one search from where the previous search ended tends to reduce search time. That's one of the reasons iterators are used for many pctrie operations. This change modifies non-iterator methods for insertion, removal, lookup and replacement to change the root node at the conclusion of the operation to the node where the search ended.
A disadvantage is that for a pctrie that is truly randomly accessed, climbing to near the top of the trie will be an extra cost not paid if the root were always at the top of tree. An advantage is that many uses of iterators could be dropped from the current code, and invalidation of iterators when locks are briefly released would no longer be an issue.