After discussing this with Eli and John, it was decided that the responsibility to restore the current buffer lies on the lisp function and not the Emacs code that calls `window-size-change-functions'.

I committed a patch to follow.el that ensures that the buffer is restored, see http://git.savannah.gnu.org/cgit/emacs.git/commit/?h=emacs-25&id=75a1d009f747a220c7b9b1cfdbe7077082fe02d6 for details.

    -- Anders Lindgren