People should not be punished for success and the federal government should not be paying to cover roofs for anybody as it is the homeowner's responsibility to do that or purchase insurance as protection. There is nothing in the Constitution authorizing the federal government to pick and choose who should get a federally purchased roof or that anybody should get that.
I have no problem with FEMA going in or a short term basis to assist with clearing debris, helping to restore roads and services when a state is overwhelmed by a huge disaster and lives are at risk. But those who choose to live on a hurricane prone coast, in tornado/hail/wind damage areas, on flood plains, in Earthquake zones, etc. should assume their own risk to live there and not expect everybody else to cover that risk for them.
That may sound hard hearted and uncaring but it isn't. As Benjamin Franklin once wisely observed, the more provisions the government made for the poor, the less the poor did for themselves and thus became poorer. Conversely the less provisions the government made for the poor, the more the poor did for themselves and became richer.
A moral society takes care of the truly needy and can do that individually or via social contract or via those who are led to provide charity services. But it should not be done by the federal government most especially by differentiating between people of different ethnicity, skin color, political party etc. The federal government should indeed see all as equal and treat everybody absolutely the same.
And it is in my opinion highly immoral for the federal government to reward the irresponsible while punishing or denying services to the responsible.