A ordem das opções --include e --exclude é relevante.
Você está primeiro incluindo todos os arquivos *.pdf , a exclusão posterior de *web*.pdf nunca se aplica por causa disso. Observe também que os padrões de inclusão / exclusão se aplicam a nomes de nós (arquivos, diretórios, etc.) e não a nomes de caminhos, a menos que você tenha um / ou ** no padrão; portanto, excluir *web*.pdf não excluiria ...web.../...pdf de qualquer maneira.
Se você quiser todos os PDFs, mas não os que estão em diretórios correspondentes a *web* , isso deve funcionar:
rsync -rv --exclude "*web*/" --include="*.pdf" --include="*/" --exclude="*" --prune-empty-dirs /source/ ~/destination/
Isso evitará que o rsync recursivo em diretórios correspondentes a *web* , inclua todos os arquivos *.pdf , inclua todos os outros diretórios, exclua todos os outros arquivos.
Usar ** no padrão também pode funcionar, embora eu prefira a solução acima:
rsync -rv --exclude "**web*.pdf" --include="*.pdf" --include="*/" --exclude="*" --prune-empty-dirs /source/ ~/destination/