First, most Android devices don't have 300+MB of storage space.
Second, Android applications require twice as much space at install time as the app will need when completed, so a user would need 600+MB free (or 1,200+MB free if you turn on Android Market copy protection).
Third, many users attempt to purchase their apps over 3G and will be rather irritated if you cost them a small fortune just for your app download.
Android 2.2 allows apps to be installed to the SD card. That solves the first two problems, at least somewhat, though the first devices are only getting 2.2 right now.