Here's how it ought to work in my mind:

The user ought to have a simple way to decide what he wants to contribute to the network, with the default being something that ensures that the user remains a "full citizen node" but perhaps without automatically seeding large amounts of history without the user's consent. I imagine having four or five settings, but a real implementation will probably expound on the idea. (I realize that this is a thread about "ultraprune" and my examples mention "metatree", but please see past that - I am only presenting a 30,000-foot-level view of how I imagine this working)
What the other settings might be:
MINIMAL:
* Recommended for low-bandwidth or high-cost network connections.
* No incoming connections from peers allowed.
* Downloaded data set consists only of the minimum necessary to determine the latest block.
* Information about balances queried from peers on an as-needed basis
* Lowest possible security. Add trusted peers to the preferred peer list whenever possible.
LOW:
* No incoming connections from peers allowed.
* A pruned dataset is downloaded and maintained.
MEDIUM: (this would be the default setting)
* Incoming connections from peers allowed
* A pruned dataset is downloaded and maintained.
* Peers may download the dataset up to the configured upload limit
MEDIUM-HIGH: see image...
HIGH:
* Incoming connections from peers allowed
* Accepts metatree queries from peers, and seeds historical
versions of metatree to assist in recovery/rollback if needed
* Full transaction history is maintained (requires XX GB,
which increases over time)
* Allows peers to download the data set up to the
configured bandwidth limit.
* Full network citizen/historian which assists in allowing other nodes
to recover the entire network history in case recovery is needed
* Recommended setting for mining nodes wherever feasible
Ideally, if all of these modes were implemented, a new installation could start running in the "MINIMAL" mode regardless of user choice so it is instantly usable without a day of downloading, and then slowly upgrade itself to the level of the user's choice as objects are downloaded and verified.