The State should stop its social engineering, its encouragement of some activities over others. So long as the income tax exists, it should at least disallow deductions and unbalanced taxation. That is, with many charities, society as a whole benefits from the contributions of a few. For instance, a well-run charity might help the homeless find jobs and accommodations, which would benefit everyone even though not everyone paid. To help overcome the free rider problem, in which people are tempted to reap the benefits without paying for them, the tax code can lesson the pain of charitable giving.
Many businesses provide benefits to society as a whole.
Microsoft, by creating a widely used computer standard, has contributed to a general increase in productivity for which it has not been wholly compensated by its customers. Perhaps there should be a Microsoft tax deduction. Sorting this mess out is practically impossible, ensuring that any discriminatory tax will be unfair. Many for-profits, on the other hand, such as CFR, barely scrape by financially. The common distinction, then, is misleading at best.