Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
This is amazing. One thing though, don't put ?> at the end of your files, doing so could mean you accidentally include an extra character which would send headers before Magento does and cause you issues.
An even lazier way of setting search results is to just set it as the core one: <preference for="VinaiKopp\Kitchen\Api\Data\HamburgerSearchResultsInterface" type="Magento\Framework\Api\SearchResults" /> in di.xml
FYI it's regarded as bad practice to put ?> at the end of your php files. The reason is, if you accidentally put whitespace after the ?> then PHP will begin its response to the client. When Magento comes to set its own headers and response, it'll error, "Headers already sent" and you'll spend hours debugging it.
I think it changes it in the beforeSave because it modifies it in the afterLoad. If it was saved in database as UTC, changed to BST in the afterLoad, and then saved without converting back to UTC, it would break.