No particular overwhelming reason, just some small things

A subclass could neuter it. 

Or something importing managercli expecting to use it as a library could monkey patch it (providing a way to set it's exit handler would be a little cleaner for that case though).

In theory, the class could use it as a place to insert a cleanup hook.
That's something you could register an _atexit hook for as well though. 

But, you should really only need one call to sys.exit() for the app.
(This is assuming we replace all the sys.exts() with the wrapper, which isnt the case atm)

Testing doesn't really need it, since it could be mocked in the fixture