It's not completely redundant. You can't make a naked CNAME record (technically you can, but things will break in mysterious ways), and there's no standardised means of dynamically updating an A/AAAA record e.g. to match a virtualised load balancer (e.g. AWS ELB). Vendors have non-standard extensions to work around this, e.g. Route53 has the ALIAS virtual type (which presents itself as an A/AAAA to the clients); I wrote some cron+dig hacks in the past when that wasn't available (e.g. with ChinaCache).