_searchNearest() either returns the anchorObject or the one greater/less than it and returns it. It only returns null if you search for something "greater" than anything in the tree or "less than" anything in the tree *and* you specify it to move up / down respectively, otherwise it would have returned "nearest".  So:
given: [10, 20, 30]
  searchNearest(31, option:GREATER) -> null
  searchNearest(31, option:NEAREST) -> 30
  searchNearest(31, option:LESS) -> 30

With the first movement of the iterator, we no longer care about the anchorPoint, in this case they've walked off the end of the tree, but can certainly walk back with movePrevious().