2) It is a requirement by international law.
3) If we compare this to the Battle of Mosul. Which is a pretty good comparison. They are very similar. That battle had a much larger civilian casualty count. The allies there decided to not evacuate the population and the result of that was a much larger number of civilian deaths. Are you proposing that Israel should have done the same? I.e. not evacuate the population and have a significantly higher number of civilian casualties? Do you feel that if Israel did that it would enjoy a similar support as the allies had when they went after ISIS in Mosul?
Basically Israel did the right thing here. Provably better (judging by the number of civilian casualties) than the western armies that allied against ISIS did in Mosul. The ethnic cleansing allegation is not supported by evidence and really can't be proven until the war is over.