Those three commands are intended as three levels of "officialness" to your release.
share does 2 main things:
- Packages your software with a version suffix like -public1
- Uploads that package to a PPA
So it's good for quickly getting code to testers. Ideally you'd use a separate PPA from your normal releases.
release does the same thing as
- Updates your version with a real version number like 12.04 (or whatever number you provide)
- Saves your changes to bzr and tags it with the version number
- Pushes a tarball of your release to your Launchpad project page
So it's good for releasing a version of your software that is ready for prime time.
submitubuntu does the same thing as
- The PPA package of your software will be setup to make it easier for the App Review Board to accept (installs your software in /opt, adds certain metadata flags, etc)
So this is good for releasing a version of your software that you also intend to submit to the ARB. Note that this does not automatically submit it. It just makes packaging changes to make the ARB process quicker once you do. You will then need to point the ARB to the PPA into which you uploaded.
If you just want to test those packaging changes (like /opt), but without actually releasing, use
quickly package --extras.