There are three requirements:
- Your project must have a .info file
- Your project must have a project.drush.inc file
- Your project must not have a project.module file or any sort of .profile file
If all three of these are true, then Drush will store the project in ~/.drush. If there is a module file or a .profile, then Drush will treat the project like a module or installation profile (usually storing it in sites/all/modules).
Your project was missing a .info file, but unfortunately, the existence of the profile file caused Drush to decide that your project was an installation profile, and Drush thinks that those do not belong in ~/.drush.
The user will have to specify --destination=$HOME/.drush, or move your project to the correct folder manually.