TRUNCATE (by default) releases all extents that have been added to the segment since the segment was created. Also, the High Water Mark (HWM) is reset to the beginning of the segment. The rows of data are thus not deleted; however, since they are beyond the HWM, they are not accessible. Since this is all DDL, no rollback and a minimum amount of redo information is written.
DELETE, on the other hand, is DML. Consequently, it does generate rollback and a higher amount of redo information. So, while it CAN be rolled back, it also consumes considerably more in the way of resources.
Not sure about "Optimistic Searching". [sig][/sig]