You can make UDP arbitrarily reliable and secure as long as you do this at the application layer. Did you ever study Kermit or Xmodem? These were delivery guaranteed communications protocols that were entirely implemented at the application layer. The communications layer was simple asynchronous serial data transfer protocol.
In fact, TCP/IP can be simulated over simple serial protocol. You could do the same using UDP, or any other communications protocol.
this was part of the intintional desing of udp. udp is used for video, network time management protocol, dhcp. because it does not use acknoledgements like tcp it is a bit faster. sequincing, checksums, crc not being used also speed it up. because it is mainly video or audio a small glitch will not be very noticable. however if your downloading a driver, program etc this mising a packet could cause disaster this is why tcp is used. udp is prety much tcp withput the extra features.