About the only reason I can think of to distribute a python package as an egg is so that you can not include the .py files with your package (and only include .pyc files, which is a dubious way to protect your code anyway).  Aside from that, I can't really think of any reason to upload a package as an egg rather than an sdist.  In fact, pip doesn't even support eggs.
Is there any real reason to use an egg rather than an sdist?
One reason: eggs can include compiled C extension modules so that the end user does not need to have the necessary build tools and possible additional headers and libraries to build the extension module from scratch.  The drawback to that is that the packager may need to supply multiple eggs to match each targeted platform and Python configuration. If there are many supported configurations, that can prove to be a daunting task but it can be effective for more homogenous environments.
Why would one use an egg over an sdist?