However, unless blocks become "full", there should not be any discrimination for "free tx's", ever. That defeats the purpose of the whole network.
No, it does not. That is the original intended design of bitcoin whether you want it to be or not. Bitcoin is a voluntary system. You are not forced to use it, nodes are not forced to relay, miners are not forced to confirm.
There is no excuse for discrimination like that. Saying it is for security is like saying you won't allow large transactions, to stop theft. It is not a solution, it is not the purpose of the "transaction processor".
You have a better suggestion on how to prevent denial of service attack?
Bitcoin is not a business, it is a service.
Mining (transaction processing) IS a business.
The ones doing the processing should be rejected for blocks, if they fail to "fill a block", when there is ample transactions waiting to fill the block. Free or paid.
There is no way to guarantee that the rest of the network knows about every transaction that your node knows about. There may not have been "ample transactions" at the time that the block was created, but there may be "ample transactions" by the time your node receives the block. How will your node know how many transactions existed at the time of block creation? More transactions may come in after the miner starts mining the block, how would you handle such a situation. Platitudes will get you nowhere. You need to come up with real solutions to real problems, otherwise all your pontificating is just useless noise.
If the point comes, at the end of the cycle, when TX-fees MAY be required... Then they should ultimately be enforced. However, difficulty could be zero, so any open wallet could use CPU power for a transaction, and miners would not actually be needed.
Without a high enough difficulty, blocks will be created too fast, and there will be a rediculous number of orphaned blocks. Less than a few hundred confirmations will become meaningless since there will be so many forked chains and orphaned blocks.
Why would they do it for free... Because if they want to be able to spend what they earned, they will do it at a cost.
Right, just like everyone will pay transaction fees right now to be able to spend what they earned? You want others to pay for what you want to use now, why would it be any different in the future?
Miners are NOT needed for the future of bitcoins and processing.
Mining is transaction processing. If you want transactions processed, then miners (transaction processors) are needed.
Fees are already essentially worthless, unless you have a full block full of thousands of $10 fees.
Block limit is currently 1 MB. Given average transaction size, I think we can fit about 4,200 transactions per block. Are you suggesting that fees are worthless unless you have $42,000 in fees per block? Maximum block size may increase in the future. If maximum block size is increased to 10 MB, then bitcoin would be able to fit about 42,000 transactions per block. Are you suggesting that fees are worthless unless you have $420,000 in fees per block?
They should have simply made the minimum fee 0.00000001 for all transactions, and then just made bigger blocks as needed. That would have simply solved everything. Well, that and faster block-times.
I think you are mistaken on that. Have you even tried the math behind it, or are you just spouting off numbers that you like and assuming that because you like them they must fix all problems?