> So the browser would have to determine if the item is visible to the user, which is not trivial
This is not terribly difficult, browsers need to know what is visible because they have to actually display it. If an element isn't drawn it shouldn't be autofilled.