How do soft body/collision dependencies work?

I was just thinking about how soft body and collision dependencies work. In current versions of Blender, it works pretty well to just follow the soft body modifier with a collision modifier, but it suddenly occurred to me that it’s a little tricky to do.

It’s pretty clear that soft body self-collision and soft body interaction with a separate, colliding object work very differently, just from seeing them in action.

How does Blender generate the collision shape for soft bodies with unclear dependencies? Does it use the previous frame? Does it use the previous step? If using the previous step, does this mean that modifiers necessary to calculate the collision shape are recalculated on subframes?