"Best practice" vs "Acceptible". Both are correct as they are different scenarios.
Should you filter ICMP so only specific types are allowed? Sure, if you want to be strict/most secure (Best practices and all)
Is there enough danger to warrant filtering them like that? Probably not, so most people don't bother, so allowing more is acceptable to many people, even those with general security concerns.
pf allows related errors and such back through state data anyhow so most people really only need to pass echo requests explicitly for IPv4.
IPv6 is much different, you pretty much should be allowing everything there for ICMP as it's compulsory. pfSense drops in a bunch of ICMPv6 rules to pass the bare minimum, but passing all ICMPv6 is not bad unless you're trying to stop others from getting ping responses for local hosts. The rules from pfSense are to make sure you don't shoot yourself in the foot and break IPv6 with bad rules.