I was wrong - it seems the stat line has 3 entries for each stat and skill: base, permanent bonus/penalty, temporary bonus/penalty. There simply isn't a positive/negative cap on the bonuses and penalties, though I surmise that in the game engine the skills and stats are still capped at +/-100.
Testing another theory now...
[Edit]
I think I figured it out: it's near the end of the character's save block, the line that reads "-20 -20 -20 -20 -20 -20" for new characters. Position 2 tracks the bar, 3 tracks the gambling hall, 4 tracks movies, and 5 tracks sex (brothel, street, and bar sex). Each time a character performs the job, the number increments some (random?) number, and when it reaches somewhere around 13-20, the character refuses to do the job. I tried editing the save file to reset the counters to -20 each, but the game crashes on loading (instead of the typical incompatible save game file message that crops up when I edit other parts of a save file).
Necno, is it possible to edit the talk scripts to decrement these variables? If so, what are the variables called so I can edit the scripts to account for them?
[Edit 2]
Interestingly (and appropriately, IMHO), the Nymphomaniac trait prevents the sex counter from incrementing. Does anyone know of any other traits having a similar effect for other jobs?