there has been numerous issues and discussions about issues similar to this, both in this bugtracker and the debian bugtracker, see #36 (closed) or #33 (closed) for an example, but there are more like this in the Debian BTS.
could you clarify which version is affected and show the actual and expected output? there has been some extensive work to fix stuff like this in 2.1 and later.
also, as far as I understand this, we (GPG/monkeysign) don't sign subkeys but user ids (UIDs). i wonder if you really mean "revoked subkeys" or rather "revoked UIDs".
if we still offer those keys for signing, it's obviously a bug.
crap, that looks like your right, of course. if you want to tackle this, look into the UID chosing mechanics in ui.py around line 575. this is the generic UI item that calls the implementation specific (CLI/GTK) UID choosers. i think this is where those UIDs could be filtered. note that there's already some UID cleanup code later in that file (see the cleanup_uids function), maybe that could be reimplemented as a more generic filter in the gpg.py Keyring class.