Если так описывать, то программист - это менеджер компьютера, ставит ему таски и декомпозирует задачи...
Если грубо говоря - да. Если вдаваться в детали - нет (ну или слишком далеко от реальности).
В ларке контракты служат для описания инвариантности поведения и сигнатур сервиса (интерфейсы как бы этим и занимаются - орут во всю глотку, что ты забыл реализовать какой-то там метод при имплементации этого интерфейса. "Г - гениально"). Т.е. в нашем случае это просто тавтология, а названы они так для удобства, чтобы понимать, что имя является (а) локатором для доступа к сервису и (б) допустимым тайп-хинтингом в методах для инъекций реализаций. Параллели этих "контрактов" на DbC хоть и можно проводить, так как идеи схожие, но не стоит, т.к. всё же немного (сильно) подходы разные.
Сервис-провайды - это провайдеры сервисов. Ещё одно гениальное умозаключение. Переводим на русский и получаем "поставщик услуг". А если грубо говоря - регистратор этих самых злосчастных сервисов.
Фасад в нормальном мире - это хренотень, которая объединяет набор разных сервисов в одном месте. В мире ларки - это прокси, который используя сервис-локацию стучится в контейнер и перенаправляет все вызовы методов в этот самый сервис, который зареган в этом самом контейнере. В качестве локатора для сервиса вполне может выступать его интерфейс, ака "контракт".