All functions and procedures should have a SPECIFIC NAME. We have found over the years, that it's much better to control the specific name, even if it matches the routine name.
All functions and procedures should use PROGRAM NAME nnnn so that your strictly control the name of the PGM or SRVPGM that is being created. Again, we have found such control to be far superior than database generated names.
Per @forstie