Речь, как я понимаю, про inconsistentRead.
Если есть функция с колбеком, и этот колбек в некоторых случаях может вызваться только асинхронно (в данном примере - при отсутствии данных в кэше), то функция должна быть написана так, чтобы колбек всегда вызывался асинхронно.
Для наличия данных в кэше добавляем асинхронность искусственно:
if (cache[filename]){
process.nextTick(callback, cache[filename]);
}