Using drupal to run a download website with about 10K files I want to run a website which has more than 10000 files available for download.Is sites/default/files a good place to store the files?
I see some websites store their files in someting like server1.example.com/file1.zip or drupal.org uses ftp for project files.

Which one should I use?
It depends on how do you want to manage/upload your files. You can put your files in sites/default/files but create a new vhost (with or without the same web server with your primary site) at files.example.com to give access to this folder. Also, it depends on whether you want access control to your files. If you don't want public access to those files, you should use the vhost, but use something like X-Sendfile header to reduce server load.