The attached patch resolves the aforementioned problems.
However note that when a point is indexed, the final full-length token is not indexed with a trailing leaf '+' byte variant; it was before. The up-side is that we save one token per indexed point (~1/12th savings if 11 maxLevels). The semantics of that '+' are intended to be that the entire grid cell represents an indexed shape for matching, so compare the rectangle for it with the query shape. But for points, it should be the center point of the cell, so no '+'.
If a user doesn't re-index, then an indexed point is 1/2 the smallest grid cell closer to a query shape and as such might match when it didn't before. Quite minor I think but worth mentioning.