The biggest detraction that I have found is that you can't use bulk bind with execute immediate and have a single transaction where the entire transaction works or fails. I.E. When a row fails during an update all of the other changes remain while the row that fails does not change.

It seems like this is a violation of the acid principle. It might be possible to track the rows that failed and to log or build some business logic to handle those rows.