If I populate the Animals list with 4 objects such that 2 of them match the filter and 2 of them do not match the filter, I observe the following behaviour regarding the RecordCount property:
If RecordCountMode = Default, RecordCount = -1
If RecordCountMode = FetchAll, RecordCount = 1
I assume the former is expected behaviour but it seems like the latter is a bug...?