Why does ADS-B broadcast velocity?
The "position" and "velocity" include more than what the title would suggest.

Airborne position gives you:


Latitude/longitude
Altitude


Airborne velocity gives you:


Horizontal ground speed vector
Vertical rate
Air speed (when ground speed not available, can be true or indicated)
Heading (when ground speed is not available)


Together these two message types give you all the basic information you need about an aircraft's location and velocity. You are correct that given two lat/lon/altitude points, you can calculate the average horizontal speed, heading, and vertical rate. Keep in mind that ADS-B is already using the Compact Position Reporting format which calculates position with either two sequential messages or a reference position.

In addition to the additional computation cost, the measurement accuracy also needs to be considered. ADS-B broadcasts a "Navigation Integrity Category" or NIC, which expresses the accuracy of the GPS position. In terminal airspace, ADS-B is required to have about +/-300 feet in positional accuracy. While this is sufficient for giving general position and providing separation, it would create a lot of error in computing velocity. In reality the positions are fairly consistent but data errors still happen.