Hi,
ctrlp#utils#cachefile by default uses getcwd() as the cache filename. And it is called in https://github.com/ctrlpvim/ctrlp.vim/blob/master/autoload/ctrlp.vim#L381 without any parameter.
When autochdir is set, opening ctrlp with files in the same project root but that belongs to different directory causes reindexing to occur.
Can't the cache file uses to project root as base filename instead?