1. I'm talking about any delete_from statement, which includes yours and André's code too.
2. Which three do you mean? Also note that looking at code alone won't tell you whether the execution will run row-by-row because it depends on other things too (e.g. whether there are delete actions, DB log etc.).
3. Yes, deletion will run row-by-row, even if you use delete_from (unless you call a skip* method, as I mentioned).
4. I can't answer that. I know nothing about rentDeviceLine, for example. But I would assume that the code was put there because deleting the related rentDeviceLine records is necessary (and not calling it would conflicting with that).
5. If you want to invest your time to it, analyze all related tables, data methods, event handlers, business events, logging requirements etc. to see whether you really can skip everything and make a bulk delete. Maybe you'll find that you can't do that. If you find that it's possible, you must consider whether you really want to do it. You're comparing performance gains with risks regarding business logic. For example, if you skip data methods, there is a risk that code will be added there later without taking into account that it won't be called in some cases.
If you don't want to do such as analysis, don't skip any business logic.