Привязан ли как-нибудь интерфейс php к своей реализации?
Нет, не привязан. Это Liskov Substitution Principle и Interface Segregation Principle aka буквы L и I в SOLID.Для чего служат подобные вызовы и что конкретно в них проиходит?Это не вызовы, а тайпхинты - подсказки типов для интерпретатора. Нужны они только для того, чтобы в рантайме выбросилось исключение, если в функцию был передан аргумент некорректного типа.
Класс может реализовывать (implements) интерфейс.
Интерфес говорит нам какие методы должны быть у класс, без их непосредственной реализации (это ложится на обязанности класса).
В данном примере могут быть несколько классов, реализующих CacheItemInterface, чтобы можно было реализовать несколько кеш-провайдеров (файловый кеш, мемкеш итд)
php.net/manual/ru/language.oop5.interfaces.php
Upd: В указанном примере довольно странно что $cache переприваивается какое-то значение.
Скорее должно быть что-то$data = $cache->get('key'); // При этом метод get должен быть указан в интерфейсе.