You pass full file paths for attachments to wp_mail(), so the files can reside anywhere PHP can access. However, WP only uploads to its designated uploads folder, which does not have to be /wp-content/uploads/, but all WP uploads need to go there. If you upload attachments via FTP, they can be placed anywhere as long as the correct paths are passed to wp_mail().
Of course whatever mechanism you use to select attachments needs to know where that is as well.