It prunes one set of tables and outs records in the other because if the way SMF works. It just so happens that for you it made it bigger, this is not universally true.
Ok, after going through the code more carefully, I can see what you're talking about.
In my opinion, this script should ignore users with 0 posts. I've modified my version to do just that. On my forum, I have lots of registered users that just want to access members only content.
This will clear up more than 750,000 entries in the smf_log_mark_read table alone.