I have been having problems with expiry tags when using Amazon Cloudfront as a CDN, but the problem does not seem to be Amazon. Two issues are happening. On the CDN settings page under advanced there is a "Theme file types to upload:" file type box where the extensions for files to be uploaded from a Theme are listed (provided the check box for 'Host theme files' is checked). I am using custom fonts and Firefox and Safari will not load them if they are not from the server hosting your domain. So I removed the
extensions (clear cache etc...). But that did not work I had to uncheck the 'Host theme files' check box to get custom fonts to stop being uploaded. So that is the first problem the removal of Theme font extensions does not remove them from the upload.
Second by unchecking 'Host theme files' the content is now served by the local server and not the CDN but for some reason the local server does not set expiry tags (on the content that was previously uploaded to the CDN) when this setting is unchecked.