As I understand it, SQL::PreProc makes quite controlled use of source filters - it specifies what it will and won't parse and mostly (or completely?) doesn't attempt to parse perl so it avoids the dangerous bits of source filters.
Comment on Re^3: A brief survey of the DBI usability layer modules on the CPAN