The preprocessor currently has no support/understanding of #pragma's, it only passes them on to the "real" C compiler (which compiles the preprocessed source code). If the "real" C compiler happens to see the #pragma warn ... before the preprocess finds a line to complain about, the preprocessor can make use of the disabled warning info. The "real" compiler reads preprocessed code in large blocks, for efficiency, so it's not line-by-line oriented. In other words: it may or may not work to disable warnings in the preprocessor.
This is obviously not prefect. Making a satisfactory change for this will take several weeks, and I was hoping to release a new version soon-ish. I don't have all the time in the world to work on Pelles C right now, so this may push the release forward a few month. I have to think about this...
Edit:
The C99 standard says: "When in a group that is skipped, the directive syntax is relaxed to allow any sequence of preprocessing tokens to occur between the directive name and the following new-line character." - my interpretation is that the directive name needs to be recognized, and "unrecognized" isn't, so the warning should be OK (but I need to check some more).