Yeah that sounds right.

Also (if your putting together some code) be aware that pushpulled_face = face.pushpull "distance" will return nil.

So to get newly pushpulled faces you have to create 2 arrays. 1: with faces Before pushpull and 2: after pushpull, then subtract array1 from array2.
(TIG has some code posted in detail for this, lying around in the developper section somewhere...)

Obviously if you have the geometry grouped this process will be faster you since dont have to traverse the whole model.