Ed,
A tableupdate is an all or none situation, either the function completely succeeds or it fails. That is the situation except for the many rows stuff where we can control if some rows are updated or if it is all or none.
On the field level either the fields are all done or none of them are done.
You still have the problem of the fact that if the tableupdate on the view succeeds then a subsequent rollback will NOT affect the free table that is the data source for the view. IT will cause the view to agian be considered dirty because the view is participating in the transaction. But the free table is external to the transaction and so it is not affected by a rollback.