That's an interesting problem, but it makes sense that it would do that. Its one set of data, so applying the filter will apply to the entire set instead just that one instance per row. A simple solution would be to limit the viewing capability to one person at a time, so that the list 2 entries will only filter based on the list 1 selection. However, this wouldn't work if you needed to see all the persons at the same time. You could use multiple data connections for list 2, but that wouldn't scale and you probably don't know how many list 1 persons there are.
Sounds like a difficult problem to come up with a solution for. I'll let you know if I think of another solution for you to try.