Я пока тоже только учусь, но вот так у меня работает именно как нужно:
return $this->hasOne(UserProfile::class, ['user_id' => 'id'])->cache(60);
Количество запросов на страницах со списками уменьшилось вдвое (в каждой строке выводится имя пользователя).
Правда не уверен, что это правильно с точки зрения быстродействия (спорный вопрос кто будет быстрее: файловый кэш или БД, которая тоже кэширует одинаковые запросы)