At the moment when doing a walk of a btree with the WT_SESSION_READ_WONT_NEED flag set, we mark pages read from disk with WT_READ_GEN_OLDEST, but won't necessarily attempt to evict them during __wt_page_release_evict because a no-eviction flag might be set.
It would be nice to evict clean pages in that case. Sadly using the __wt_page_is_modified function to do that check leads to an issue where checkpoint can attempt to reconcile a child page it's just read if the read happened after a fast truncate call - since reading such a page from disk instantiates it in an unusual state.
See some discussion in WT-3761.