That's some long-term support. If your iPhone doesn't get OS updates, it almost instantly turns into a brick. Android doesn't get updates for nearly as long, but you won't lose apps and stuff nearly as fast.
Sure, with custom ROMs you can carry phones much farther than intended, if you are lucky enough that your phone gets updated custom ROMs.
But I wouldn't equate 3rd-party support with 1st-party support.
Also, custom ROMs that provide newer Android versions than the original 1st-party support often don't upgrade everything, e.g. the kernel is usually not upgraded, which can cause issues in some circumstances.
But yeah, it's pretty great that there are people who spend their spare time to get newer versions of Android on old phones. Should be standard, that phone manufacturers are doing this themselves, sadly it's not.
In my opinion it's not that they were equating 3rd party support to 1st, it's just impressive that we even have 3rd party support that is actually useful.
Should it be the phone manufacturer does this? Yes. But personally I prefer to use community ran (and FOSS) solutions.
You are totally right that it is mightily impressive that basically some randos on the internet are able to better support old phones than manufacturers are willing to do.
By default, though, a device with a custom ROM or root (basically anything but an unmodified stock ROM) will not have SafetyNet or Play Integrity API certifications. This means, apps that check for that (e.g. banking apps) won't run on the device.
There is a tool (Universal SafetyNet Fix) which tries to fake these certifications and will give you full SafetyNet but only partial Play Integrity API status.
(Play Integrity API is split into MEETS_BASIC_INTEGRITY, MEETS_DEVICE_INTEGRITY and MEETS_STRONG_INTEGRITY. Depending on how lucky you are, you'll get basic and/or device, but you will not get strong).
With Universal SafetyNet Fix I have yet to encounter an app that doesn't run, but theoretically apps could be checking for MEETS_STRONG_INTEGRITY and then there is nothing you can do to get it running (short of modifying the app itself).