Restock has not changed much between classic and EE. In EE the time between restocks was changed from 48 ingame hours to 12 ingame hours. That's the only change I think. The logic used in EE was already present in classic.
It's no cycle in a technical sense, it's done on demand. And it's not done when talking to characters but only when the trade window opens. If you don't open the trade window, no treasure generation happens.
First time happens when you first open a trade window. After that, a check is always done when trade is started. If enough time has passed or the character starting the trade has a higher level than the character that triggered the last trade generation, a new treasure is generated.
Pickpocketing requires the pickpocketed character to have a treasure, so the steps taken are exactly the same as for a regular trade. (Even the same internal procedures are called before pickpocketing starts.)
I think that even enemy drops are only generated when needed, i.e. when the enemy dies.
(Unless it's one of the enemies that have dialogs before combat and the trade window is opened during the dialog.)