I just remembered something...
In the manifest you can create what is known as an 'activity-alias' element.
An activity-alias element is functionally much the same as an activity element but references an activity.
(Yes it's an alias for an activity!).
So you could create an activity-alias that references your Main activity.
This activity-alias would contain the intent-filter that identifies it as a launcher app.
Your Main activity would only contain the default intent-filter for to identify it as the entry point when starting your app.
So your app appears in the launcher and can be started.
If the activity-alias is enabled then your app can also be selected as the device's default launcher app.
If your app is started by clicking it's icon in the launcher, or is started by android when it needs to display the device's launcher, then the Main activity will be started.
Now if your disable that activity-alias your app will no longer be identified as a launcher app.
It will still be listed by the device's launcher and be startable.
This has one advantage over what i described in my previous post - your Main activity can still be set as the activity that is started when set as the device's launcher.
(No need for separate activities).
http://developer.android.com/guide/topics/manifest/activity-alias-element.html