You could make a similar argument that since Cura can slice the model, there’s no reason the printer could not do so. Some printer controllers such as octoprint can so this.
Cura does not get the density from the printer. It gets that from its own list of materials—to which you can add. It communicates with the printer using GCode, which does not have a way of communicating density.
Cura could add a comment that could communicate this, but as was mentioned above, that would require a firmware change, and it would only work for things sliced in Cura.
Since Cura can display the weight, the printer should be able to do so as well.
I know I can manualy calculate the weight for each print, but the question was about not having to do so....
The printer knows what material, hence knowing the density should not be an issue, and it knows the length of filament needed.
It should not be a problem to have the printer display the weight pretty acurately for "standard" materials such as PLA, ABS, PETG etc.
If I am not mistaken, the printer has no need to know the density of filament. It can easily show the length by finding the last extruder move command in the gcode.
To display weight, it would need to know the weight per meter.
You could calculate this factor for each of your materials, then simply multiply the stated length by that factor when starting a print.