(general reply)
relating this to the issue at hand, there are 2 obvious possibilities: either the file has changed or it hasn't. if the file has not changed, then both approaches (/filter and file handling) perform wasteful operations when a simple $file().mtime check is sufficient. this is as important a consideration as the one we're currently discussing since the file is likely to be polled often and (presumably, for a pager script) the majority of those polls will result in no indication of change.
then the 2nd and more thought provoking consideration is, given the file has changed, how best to return the changes. admittedly, i didn't examine the codes here - i wholeheartedly agree that maintaining a byte position and seeking to it is more efficient than calling a function that, even implicitly, has to examine each character to see if it constitutes a line break, count those, etc.; that is self evident.
however, the gist of my reply to you, MeStinkBAD, is still valid because you are speaking in too general terms. the question of whether /filter or file handling should be used in the general case is silly. they are quite different features and both have their own particular set of suitable applications. in this particular case, i would advocate a healthy mixture of the two. initially, we should use /filter (or the more suitable /loadbuf) to load the file into the window if this is the first call to the alias (lastfpos is unset) especially if the file is sizable. then, as the file's size increases, maintaining a byte position to seek to in the event of a change is indeed the way to go.