FOREIGN KEYs are supposed to keep the database consistent all the time. So it is against the very idea of foreign keys to have them in database and still let remove referenced rows…
Though… there is one case when temporarily breaking these constraints may make sense: during a transaction. Important thing is to have the database consistent before and after transaction and not to let any other database user see the inconsistent data, but during a transaction and only in the session doing the transaction, temporary inconsistency won't hurt. And SQL allows for this: you may define some foreign keys (and sometimes other constraints) deferrable and request deferring of enforcing them to the end of a transaction.
This way you may do a complicate set of changes on database, even removing some rows still references in other tables and still have the database consistent and the end of the transaction. Other database users won't even see the temporary inconsistency.
Update: It seems MySQL doesn't support deferred constraints. So this answer is probably not very useful.