Thank you, you are totally right about that!
I personally would really like to see CANopen (or something similar) implemented in HA, because of all the points you just raised (versatility, low-cost, low-complexity)…
Most of these advantages are also pointed out in threads like mine HERE.
But all this would require, that the fundamental hardware is supported natively (or at least without a lot of tinkering). Setting up the higher-level protocols is then nothing more but how the data is handled. As you said, there are open source protocol stacks out there and they are proven and widely used. But for some reason CAN bus (and with it CANopen) has not made it yet into the “mainstream”, because it is still seen as a pure industrial bus (and in most cases it as seen as a automotive-exclusive bus).
@pergola.fabio has already done great success in communicating with CAN devices over his CAN-to-USB dongle. But he created a custom device with a REST API (IIRC, please correct me if I am wrong). But we both agreed, that this approach should not be the final solution, because there is just no real/nativ CAN support.
So from my point of view, the first step should be to have native CAN support onboard with all the underlaying data management, and having a dedicated CAN platform which then could be used by different components as described HERE. Note: just a proposition, not a solution.
Greetings!