Некоторые базы данных и серверы приложений кэшируют подготовленные операторы на стороне клиента и понимают, что вы пытаетесь подготовить оператор, который уже был подготовлен, и передаете ссылку на pstmt из кэша. Это очень часто встречается на серверах приложений Java, но не так распространено в PHP.
Подготовка заявления, безусловно, дороже, чем нет. Это требует некоторых дополнительных обращений к базе данных, поэтому с точки зрения производительности это того стоит, если вы собираетесь вызывать один и тот же SQL (с разными параметрами) много, много раз.
Однако есть еще один аспект помимо производительности - безопасность. Подготовленные операторы - единственная лучшая линия защиты от атак SQL-инъекций, которые невероятно распространены. По этой причине я всегда буду использовать подготовленные операторы, даже если в некоторых случаях технически более эффективно просто пропустить этап подготовки.