First, set some buffer-local variables:
augroup MyAutocommands
au!
au BufNewFile,BufRead * let b:my_autocommands = DoMyAutocommands()
" other autocommands
augroup END
Create the DoMyAutocommands
function. For starters,
function! DoMyAutocommands()
if @buftype == 'help'
return 1
endif
" other conditions ...
return 0
endfun
Then each of your autocommands, or the functions they call, can check exists('b:my_autocommands') && b:my_autocommands
.