Changing CMSPreferredCulture to expire at the end of a session may have undesirable effects to user experience especially in a multilingual site, so be mindful of that.
The way I'd expire the cookie is to handle the ApplicationEvents.SessionEnd.Execute event in a custom module class and set the CMSPreferredCulture cookie to a past date. This should cause the cookie to delete when the client session ends.