Is a peer connection maintained for the life of the node, or is it recreated on every request?
Or is the connection persisted for the life time of the application?


Persistent. Subsequent messages will be transmitted across the same connection.


  If it is persisted, what prevents a well known public node from being swarmed with peer requests?


The Core implementation has a Connection Manager that increments the ban score for a peer if the peer behaves erroneously (e.g. spamming peer requests). Once a ban score of 100 has been accrued, the peer will be disconnected and banned from connecting until ban time window has been served.