Why does the system generated TNSNAMES.ORA have two entires, one with a full connect descriptor and another with just a network address?
No, it generated 1 entry for the database (DB2), and another for the listener (LISTENER_DB2). 

Then your local_listener parameter was set to LISTENER_DB2, so your database could use this address to find the listener and register into it, since it is not listening on the default port (1521).