I see a need for the concept of marketing email seperate from newsletter emails.
You have NewletterSubscription as a seperate entity from Customers as a subscriber may not be a customer.
Marketing emails could just be another field in the customer table - bool ReceiveMarketingEmails
My implementation would be for customers to receive marketing emails by default unless they opt out during checkout. This is fairly standard stuff on most sites.
Currently on nopCommerce I have no way to seek permission to send marketing emails to all those lovely new customers, I have to rely on them manually subscribing to the newsletter.