a forced restructure marks all blocks as dirty, so if you run an intelligent calc after the restructure it in essence performs a full call (calc all) of the db. Is that what you are seeing?
How are you doing restructuring its through maxl or by clearing the data and reloading the data into the cube ,whenever data blocks are restructured all restructured blocks will be marked as dirty (Database Restructuring). The most time-consuming of the restructures is Dense restructuring,if you are doing force restructure through maxl its does a dense restructure.
What i think would have happened is, once you restructure your database and run your calc, it would need to open up upper level blocks and once the blocks are opened the calcs would run as normal over writing the existing values causing defrag again and process goes...
Apologies of i took the question wrongly or my answer dont assist your query.
Yes, it could be that, maybe the the first calc stores the blocks in memory that the subsequent calcs then use, it is quicker to reference blocks from memory than from disk. The restructure may cause memory to hold blocks that are not used as much?