That you can acutually do this is unintentional, app.field is only meant to work for actual fields (the parameter is supposed to be a field name), but since getData creates a ListObject it obviously works. Possibly a bug. You will need to keep track of what field to use for selections yourself, not too difficult in your example, but might be worse in the real case.
Actually, I decide to use Field API instead of serchResult because it gives me an ability to use a expression-like field for filtering in my extension. So this is a kind of situation when I can say that It's a feature - not a bug=)
Could you please give me an advice about the best way to do search and filtering like qlik sense have in their native table component?