1. random barcodes - security - so that it is not easily guessable as serial ones are. It appears to be a common way to do it in some local applications I have seen where an internal serial id is there to keep track by the application and the random one in another field is used for human / external automated interface. This technique is used in some hall ticket in examination systems to thwart "paper chasing" where auto dummy number allocation is resorted to.
2. A company specific config option to suppress the auto random barcode generation will help avoid confusion among those not using barcodes.
3. Which barcode type and how many digits in the barcode (if not specific to the chosen barcode) and the appropriate format for it, possibly without check digits (which should be auto generated) or when given, to be used for verification would make for a slightly more complex interaction best left to custom modules..... Making the function generic in the ammer you sufggested would be welcome even if not implemented fully for now. The barcode.php has anyway been fully "upgraded" manually from the original TCPDF sources of later versions to support a much wider range than was available earlier.
4. Yes, a note on the Show pictures options would be nice and it may double up for the config option or is it to be differentiated in some way by being a new one?