Yeah thats taken care of in code with stuff like IF statements or similar in whatever language they are coding in.
so for a crude example:
if pvr.name = "HDR" then < the pvr.name would be pulled from the hardware chip
dual_record = true
else
dual_record = false
end if
or
if Tuners >1 then
dual_record = true
else
dual_record = false
end if
Therefore, they can effectively only maintain one codebase for both models.
They may well maintain two different codebases for all i know, but this would only make it more complex when mirroring across items that are common on both models. And from a developers point of view, that makes no sense as its just duplication and extra debug/dev time wasted.
This is also why you see the same problems on both models such as HDMI issues.
The end result when the code is compiled will produce both a HD and a HDR version with the code that is not relevant/required to each model stripped out to save space and further complications. hence why the firmwares are specific to each model but are released at roughly the same time.