gccのC++ヘッダには先頭に"-*- C++ -*-"と書いてあるみたいなので、
こんな感じに~/.vim/filetype.vimを書けば判定できました。
というかautocmdのパターンにディレクトリをふくめられることを
知ってれば、この関数は必要なかったかも…

au BufRead /usr/include/c++/* call <SID>FTcheck_mm()

fun! <SID>FTcheck_mm()
  let n = 1
  while n < 5
    let line = getline(n)
    if line =~ '.*C++.*'
      setf cpp
      return
    endif
    let n = n + 1
  endwhile
  setf nroff
endfun