This code chunk doesn't have the correction found in the binary search loop for comparing a 0th index on an internal page, and I think that's a problem.

Imagine an internal page with 1 entry (can that happen??), where the application key is less than the internal page key, so we fall through the new code (cmp < 0), hit the old code (base == 0, limit == page->entries - 1), fall though the old code because we're now setting limit to page->entries - 1 instead of page->entries, and then set ref to something bad because (base - 1) is a negative value.

If I'm correct, I'd suggest we either revert the change to set limit to (page->entries - 1) and go back to setting it to page->entries (in which case we should revert the related change in the column-search loop so the code looks the same), or, we could change the append case code to be "if (page->entries == 1 || cmp >= 0)".

In either case, I think it needs a comment.