No they do not. Hard bounces are marked as "invalid", leaving the subscribe status unchanged from its status of either subscribed, none or unsubscribed.
When creating an audience for a "promotional" message, Cordial will automatically filter out anyone that is not both "valid" and "subscribed". However when building an audience for a "transactional" message, Cordial will only filter out those marked as "invalid", as subscribe status is not a factor.
When using "Search Contacts", the resulting count will reflect all contacts, regardless of subscribe status or validity.