It's not part of your change, but I have a strong aversion to assuming any page that isn't an internal page must be a leaf page, that's a bug waiting to happen.

But I don't understand why this change is useful.

In __rec_review we're only forcing the split if the memory footprint is at least 2x the maxmempage, in __wt_page_in_func we're forcing the split if the memory footprint is at least 1x the maxmempage.  Why are the two tests different, and why do we need 100 new leaf pages in one case, but 50 new leaf pages is sufficient in the other?

If you end up going back to a single test return, I'd rewrite this function something like this:

```
/*
 * __wt_eviction_page_force --
 *      Check if a page matches the criteria for forced eviction.
 */
static inline int
__wt_eviction_page_force(WT_SESSION_IMPL *session, WT_PAGE *page)
{
        WT_BTREE *btree;

        btree = S2BT(session);

        /*
         * Ignore non-leaf pages (check read-only information first to the
         * extent possible, this is shared data).
         */
        if (page->type != WT_PAGE_ROW_LEAF &&
            page->type != WT_PAGE_COL_VAR && page->type != WT_PAGE_COL_FIX)
                return (0);
        if (F_ISSET(btree, WT_BTREE_NO_EVICTION))
                return (0);
        if (!__wt_page_is_modified(page))
                return (0);
        if (page->memory_footprint <= btree->maxmempage)
                return (0);

        return (1);
}
```