when you load the new table with where exists() on the end you limit the data in loaded table, without changing the previously loaded one.
Keep is different, it may change previously loaded data:
The keep prefix between two load or select statements has the effect of reducing one or both of the two tables before they are stored in Qlik, based on the intersection of table data. The keep keyword must always be preceded by one of the prefixes inner,left or right. The selection of records from the tables is made in the same way as in a corresponding join.