What irritates me most about them is that your bugs move. If you have an error in your code inside or after a Switch for instance, the line numbers spat out in the error and diagnostic messages will be wrong, because they are the line numbers in the code after the source filter has diddled with it.