Como o implícito e ( -a ) tem precedência mais alta que o -o , o lado direito do -o na primeira expressão é tomado como uma unidade em relação ao Operação ou , isto é:
\( -type f ! -exec fuser -s {} \; \) -o \( -type d -empty \) -print
age da mesma forma:
\( -type f ! -exec fuser -s {} \; \) -o \( -type d -empty -print \)
Portanto, para arquivos, ele executa fuser e, para diretórios, ele imprime seus nomes.
O segundo:
\( \( -type f ! -exec fuser -s {} \; \) -o \( -type d -empty \) \) -print
tem parênteses explícitos, mas você não precisa dos internos, isso é igual:
\( -type f ! -exec fuser -s {} \; -o -type d -empty \) -print
E ele deve imprimir todos os diretórios e arquivos vazios para os quais fuser retorna um valor falso (! = 0, invertido pelo ! ).
No terceiro, você tem ... -empty {} ... , em que {} é usado como nome do caminho e a mensagem de erro informa qual é o problema.