That is true. All 4 messages are sent as broadcast as client do not have assigned an IP address yet. However L2 frames will not be in all cases broadcast (ffff.ffff.ffff).
Consider also the behavour when DHCP server is in another segment, so SW relay the message to the server as unicast (ip helper-address).
-Discover will be broadcast but if the server is on a different subnet then you'll need to use a relay agent that will unicast the DISCOVER to server
-OFFER may be broadcast or unicast depending upon the setting of the broadcast flag in the DISCOVER message and if the server(or relay agent) ignores this flag or not.
- REQUEST is always a broadcast in initial DORA process
-ACK and NACK will follow same procedure as OFFER depending upon broadcast flag setting in the DHCP REQUEST