1. Native Shopify discounts don't support filtering customer eligibility by number of orders. That being said, there are tons of discount apps on the Shopify App Store for various use cases.
If you know how to code, you can create your own discount using Shopify Functions. Be sure to query `cart.buyerIdentity.numberOfOrders`, and then only apply the discount if the number is equal to 0.
I might consider adding this feature to my own discount app, if enough people want it.
2. Do you mean that the person who made the referral gets the discount, or that the person who receives the referral gets the discount? Or both? There are several referral apps; if you search for "referral" or "affiliate" you'll see at least 20. It really depends on your use case, though. Most of the big referral apps are targeted at large-scale referral or affiliate campaigns.
3. Can you give more information about what you're looking for? Native Shopify discounts allow you to filter the eligibility of customers for discount codes. There's no direct filter for if a purchase is a subscription or not, but you can potentially limit it to customer segments or known customers who are already subscribed.