RFC 6762 reserves the .local. TLD for Multicast DNS. There are no reservations for .lan. so something like home.arpa. should be used instead.

router.home vs router.home.arpa

.home.arpa is so clunky. Why do I have to put the acronym of a US military project in my domain to access resources on my own local network?

Yes, I know that organization was central to the development of the l Internet, but it's not relevant as a domain 40 years later.

I just bought mysefl a '.casa' domain, got wildcard cert for it from lets encrypt and haven't bothered with any of these. Downside, if internet goes down resolver stops, but thats why I have local NS mirror and all DNS queries go through my resolver.

You can buy a cheap domain to make sure no one else uses it and just roll it on your lan. Throw some DNS ACME challenges and you have valid certificates too.

Why should I have to purchase something (yearly subscription, mind) in order to access something that is potentially half a meter away?

This is not how anything should work.

you dont have to. .internal is fine.

I do it for the LE certificate. But "cheap" is subjective. Domain registration and management should not be as expensive as it is. Nothing the registrar or registry does could be worth $8/10/200 a year with guaranteed 5-10% price increases every year. It is a grift.

router.internal avoids the military arconym