Barcodes are something that I've recently had to deal with (although not in PDFs, I can definitely see the benefit). However, there are many types of barcodes. Two of the most prevalent are Code 128 and Code 39.
Code 39 is the one that can be done with a font. Each letter is assigned a specific set of bars, and it has a special start and stop character (often encoded as an * in the font), which helps assure that the entire barcode is scanned.
Code 128, however, goes one step further. In addition to the start/stop characters, it actually has a check digit that verifies accurate scans. However, this can't be done simply with a font. There is a lot more to do. The check digit needs to be calculated and created from the data that is being encoded. Also, there are rules as to the size of a code 128 barcode. The advantage is both reliability and flexibility, because code 128 supports more characters.
I'd like to see both options made available. There are other options as well, Code93, EAN13/UPCA, EAN8/UPCE, Codabar, Interleaved 2 of 5, Standard 2 of 5, Code 11, MSI, etc. However, Code 128 and Code 39 seem to be the most prevalent.
Additional information links:
Code 128 Table of Characters Page
Code 128 Length Calculator
Code 128 Specification
Assigning to
Alexander Veremyev to clear unassigned issues.