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