Are there any pools that openly discriminate against some transactions? For example, they only put transactions with a fee in their blocks, thus ignoring all "free" transactions?
Yes; many pools only include transactions based on fees and/or whether the transactions have standard forms. Most pool operators require that transactions have certain fees based on the size (in bytes, not BTC) of the transaction, and I believe that most require the transactions to be in a standard "Pay to address(es)" or "Pay to IP(s)" form. Eligius, for example, generally includes transactions if they have 40.96 µBTC of fees per 512 bytes of transaction, but it could be more or less if they think the transaction seems like "spam" or you make arrangements with the pool operator.