Is deleting rows a good or a bad practice?

I have seen some people claiming that deleting rows is a bad practice and should be avoided and that also could harm the integrity of the data and could mess up with the auto increment, on the other hand I think that keeping unnecessary rows are a waste, especially if the hardware isn’t that great.

Let’s imagine this scenario:

I have a table users, a user wants to delete their account; I think it’s not necessary to keep the data, I could just delete it as well as the other records related to it, freeing up some space.

So I would like to know whether it’s worth it or not deleting rows, considering it’s done properly, I also would like to know if there’s any problem deleting a row in terms of auto increment, is there any problem having records with id 1, 2 , 3 and then a record with id 5 and no 4? If not, is there any situation where I should delete rows?