Azure DevOps service connection: lifetime of service principal
I will try to elaborate a lite about those topics.


When secret expires and you got error, you have to refresh connection. Go to Edit dialog for connection and save without any changes. Described here: Azure devops service connection expired and cannot edit/renew

But I have already tested scenario when I delete all secrets assigned to service principal used for the Azure DevOps connection. And it is still working. So I can assume, that it depends on how you create connection (automatic or manual service principal). When created with automatic path, it doesn't depend on secrets.

On the other hand, when I add connection with manually providing service principal, then delete all secrets, the connection stops working. 
Yes, the service principal will exist. But best practice is to set up more then one Owner of the service principal. If the only one service principal owner is deleted, you need to have higher permission to manage all service principals.
Service principal will not expire itself, only secrets generated for it. To delete service principal object, you have to do it manually.