Bem, mas seu exemplo faz exatamente o que você quer;)
Veja o segundo:
overt htdocs # setfacl -dm u:apache:rx .
overt htdocs # touch blah.txt
overt htdocs # getfacl blah.txt
# file: blah.txt
# owner: root
# group: root
user::r--
user:apache:r-x #effective:r--
group::r--
mask::r--
other::r--
A linha importante é:
user:apache:r-x #effective:r--
Mesmo que acl esteja configurado para r-x, é efetivamente r - para arquivos. É por causa da máscara.
E a máscara será sempre apenas rw- para arquivos se o usuário a criar com as permissões rw para usuário. (Não tenho 100% de certeza, mas a máscara não pode ser menos restritiva que as permissões básicas).
Com efeito, você obtém r-- para arquivos e r-x para diretórios.
Porque diretórios criados terão usuário: r-x - > máscara será r-x - > permissão efetiva será rx.
Para arquivos: eles terão r - então a máscara será r - e permissões efetivas para ACLs também serão r--.
(Se você criar um arquivo e conceder a ele permissões user :: r-x, a máscara será modificada e os usuários formarão os acls também receberão o x)