Contrid – it’s called when the cached page is generated, so it should be after the shortcode.
For generating the cached page your shortcode should print the placeholder tag and generate the text that will replace it but it will store that text in a constant or variable. Then when the wpsc_cachedata filter fires replace the placeholder tag with that text.
On already cached pages the function that is called by wpsc_cachedata needs to generate the text.
See my updated the dynamic cache test script in trunk above. It’s better laid out than the version released.