The thing I like about the idea of having actual code which is being
used to test bugs in an issue tracker is that you have a "live" suite
of tests which could catch the re-appearance of bugs even before a
user experiences them.

How about this: each new bug reporter has a status method
automatically associated with it, which is a test case for that issue.
The default status code always returns an error, so before an issue
can be closed, someone must either manually write a test case which
can then be checked to determine the issue status, or they must
explicitly reassign a different "stock" status method which does not
raise an exception (and possibly returns some symbolic value like
"WorkingAsDesigned", or "NotReproduceable", which can go into a full
test report).

Unforunately, it seems like it would require a huge amount of trust in
your users, or tightly-restricted permissions for who could write such
cases, since you would be (presumably) accepting live code through the
web, with all of the security implications that causes.

Lennon