Supposing that you type "A" and then select it and paste "BCD" from the clipboard to replace it, in this case it would be wrong to try to filter within the previous A list. Also, what happens if the user submits a new A entry from a separate client - it will never show up if you do not requery the database.
The Pega server actually doesn't know what the user is doing in the browser until the form is committed. The browser only knows to make a new list request upon each keyboard event. There is a limit to how much logic you can ask the browser to host.
Pega offers the Minimum typed characters option for you to reduce the database overheads involved.