Ming is pretty much correct; however much of the other seems to be speculation speculation.
This is how it works. A city is founded, and a specific set of information is bit-encoded into a data matrix. One of these bits, called a flag in programming slang, is the "tech stolen" flag. The default setting is no. When a tech is stolen from that city, the flag is set by the program. No information about subsequent attempts is stored, and probability of succes is not altered by subsequent attempts/successes. Probability is altered by the presence of defending Dips/Spies (Discussion for another time).
The flag is now used by the game in 2 ways. If a Diplomat attempts to steal from the city, the option to steal is never presented. For a spy, the option to steal a specific tech is not allowed.
Now. What happens if the city changes ownership. Simple. The program resets the tech stolen flag to 0, which means a Dip can steal a tech again, and a thieving spy can choose to steal a specific tech.
The way this is implemented internally in the program means every time the city changes hands, the flag is reset... hence subject to Dip theft again. The odds of success are not affected by the cumulative attempts.
IMHO, the steal/bribe/giveup/repeat method does seem rather inefficient, and as has been pointed out, reflects more serious game strategy deficiences that required such drastic action in the first place. Another major stumbling block is forcing the AI to retake the city on your own timetable...
But, in theory, it is indeed possible to pull off this scheme with Dips. The code allows it.