in 9.3 and 9.4, pgstat_reset_remove_files uses the global variable pgstat_stat_directory rather than the argument it is passed, "directory". On crash recovery, this means the tmp directory gets cleared twice and the permanent pg_stat doesn't get cleared at all.
It seems like the obvious one line change would fix it, but I haven't tested it because I don't know how to cause a crash without pg_stat already being empty.
pgstat_reset_remove_files(const char *directory)
{
DIR *dir;
struct dirent *entry;
char fname[MAXPGPATH];
dir = AllocateDir(pgstat_stat_directory);
Cheers,
Jeff