It adds the ability to introspect the metadata. Keeping it all inside the setup.py means you can't discover this information inside the REPL. It also means that programmatic access to these values (such as the version) is a lot easier.