Most use cases do not require a tx-index. The wallet keeps track of the relevant transactions (if you run a wallet). A complete tx-index may be useful for block-explorer-like interfaces or for research, etc.
It requires some disk space.
Pruning & TxIndex: You can't use a txindex with a pruned blockchain. Pruning will throw away scanned blocks. Having an index that points to a tx in a block that is no longer on your disk seems a waste.
Autopprune (-prune=550) allows you to reduce your historical blockchain data to a given target (in MB, example uses 550 which is the minimum). You can't throw away all blocks because you may need to "roll back a couple of block" if there is a chain reorganisation.
If you set
prune=1 (== manual mode), you can then manually prune your blockchain (use RPC call
pruneblockchain <height>) [since 0.14]
The only reason to keep old blocks (say deeper then 144 blocks) is to allow other peers to bootstrap the blockchain and to serve (filtered) blocks to SPV client.
There are little "end-user" use case (expect the txindex) to keep old block.
Important to know is, that your full node will keep track of all unspent transaction (only those are relevant for validating blocks/the chain).
This database is (at the moment) roughly 2GB large and will (and must) also be present in pruning-mode. This database is essential for a full node.
Keep all blocks (take up ~80GB of disk-space). This will allow other peers to verify the blockchain and it allows SPV peers to ask for relevant transactions in all possible blocks.
If no one will run in this mode, the blockchain history may be lost (exaggerated).