Well apparently that code is not about record comprehensions, but rather about record *generators* in list comprehensions. I argued above that record generators are a very bad thing if they flatten the record structure. I'd be very happy with a record generator that iterates over the pairs of Feature#Value of the record, but does not dive in values to flatten the structure. But apparently the flattening record generator was kept despite my concerns.

If someone really wants a flattening record generator (and be prepared to have weird bugs in their program) and it's not supported by the language itself, it is very easy to write a function that will yield a stream of the flattened feature/value of a record, and use the result of that function as a function generator.