Well, bugs and features have a lot a common.
Like dogs and men.
Bugs are trackable, Feautures are trackable
Dogs have legs , men have legs
Bugs are introduced into software by programmers, Feautures are introduced into software by programmers
Dogs have teeth, men have teeth
Anyway, you got my point ...
A bug is a behavior that you want to remove, a feature is behavior you want added
but from many perspective what you can do with them is the same
We can track bugs and features the same way, and yes a smart programmer would use hard learned object oriented concepts like absraction and polymorphism to write a piece of software that would track -trackable work related to software products- and offer extensions that support specialized -trackable work related to software products
But, I also think it is not always practical to generalize every problem you try to solve, or better said not too far generalize, else you can always end up with a general purpose programming language! or Perl 6.
A good bug tracking system is one that is crafter for the special requirement of bugs even if they are minorly different from features.
A good programming environment or framework, will allow you to share code between similar systems, and extend/specialize where neccessary