Yes, you're the last to learn about it; we were all wondering when you would figure it out. ;-)
It's definitely "folklore", I can't remember where I first learned about it. I agree with Tom that it's surprising (but nice) that it works even with data types that were not declared using record syntax. I also always find it surprising that record update or matching binds more tightly than function application, so that no parentheses are needed. Sometimes I feel like it would actually look nicer to write
f (A1 {}) = ...
but then hlint yells at me. (Yes, I'm aware I can turn off individual hlint warnings. =)
-Brent