If DJI wants to have ADS-B Out capabilities, they could put the transmitter in the remote controller. As long as the drone can communicate with the RC, the RC could broadcast the drone's location. That would move the weight and power issues from the drone to the RC. I don't know how practical it would be to build it (cost, power, weight), and you would find drone operators who would not want to broadcast their drone's location. But it could be done.
Then as well as frequency congestion (that does exist) you also have the fact you're still going to need each drone individually registered with the ICAO as well as local bodies, unique hex identifiers needed for each one and so on.
Given the low altitudes, ranges and speeds consumer drones operate on ADS-B is a very inefficient way of doing it.
Something like UAT would make slightly more sense given its design but again, its overkill.
It would never deter people who want to break rules. You can spoof ADS-B with a $30 raspberry Pi plugged into a HackRF to be anything/anywhere/any speed you want.