First, I observed the out of range access for the closed-type list and open-type list are quite different:
It returns a "", I think it should be null.
If I change the type to a hytogenous type like below
It returns a null as expected.
Furthermore, the closed-type will return the wrong result by just access field by index other than by name. Here is example
It seems it skipped some offset directly without verify if the record is null or not.
The open type doesn't have this problem. The following code
will always return