The topic for SAVE TRANSACTION says:
When part of a transaction is rolled back to a savepoint, resources continue to be held until the completion of the transaction or a rollback of the complete transaction.
But the topic for ROLLBACK TRANSACTION says:
A ROLLBACK TRANSACTION statement specifying a savepoint_name releases any locks that are acquired beyond the savepoint, with the exception of escalations and conversions. These locks are not released, and they are not converted back to their previous lock mode.
I did some quick test that indicated that locks could indeed be released when rolling back to a save point.