not familiar with 2008 or the hasvalue for empty params but NULLS always had to be evaulated first in earlier versions as the formula died on a NULL. Perhaps the HasValue is a similar process?
Also try and stay away from IF-THENs in your select statement.
I would try something like:
{Status.sStatus} = "Active"
and
(not hasvalue({?Subject Keyword}) or instr({Bug.sTitle},{?Subject Keyword},1) > 0 )
and
(not HasValue({?Entered by}) or
{@Entered By} = {?Entered by})
and
(not HasValue({?Application}) or {Project.ixProject} = {?Application})