Just ran (again) into the following bug with j!mailalerts:
1. in back-end 'manage user subscriptions', unpublish a user (you do not want this user to receive the mailalert
2. cron is run and user gets email!
So it looks like the publish / unpublish setting is not taken into account when 'batch' sending mailalerts.
Only way to disable a user from receiving the mailalert is to either 'hack his account' and make the setting for him (which this person can undo) or hack the database and remove the 'frequency'