Just to add, the rules as described above are pretty typical of most countries including the US so don't act all upset when they apply to you or people you know.
The main reason why people who have a visa then get refused entry is that they lied when applying for the visa - typically they borrowed the money to make the bank statement look good, then returned it and hence don't have it anymore.
Once in the country you can lose the visa if you break the terms of the visa - eg commit a crime punishable by a jail sentence or you have a student visa and don't turn up for your course
As I say, it's what most countries have for visa rules