Você entendeu mal as ações AND / OR.
find . \( -name \*.css -o -name \*.php \) -type f -exec chmod 664 {} \;
find tenta descobrir se uma expressão é verdadeira ou falsa. Se o lado esquerdo de um OR já é verdadeiro, então não é necessário executar o lado direito. Sua abordagem funcionaria se o OR tivesse prioridade maior que o E, mas esse não é o caso.