W3TC enables you to automatically upload attachments, includes files, theme files and custom files to the CDN.
W3TC will then replace all links ( let's say for Cloudfront ) :
And upload all files from the media library and any such defined in the 'Custom file list' option defined on the CDN page '/wp-admin/admin.php?page=w3tc_cdn' to the CDN so they become available.
However, since 'All-In-One-Favicon' doesn't register the favicons as media uploads, and uploads them simply to a ( random, based on month ) directory such as /uploads/2013/11/ it is hard to keep track of those favicons and how to automatically sync them with the CDN.
And W3TC changes the favicon links to the CDN position, however they are not there. Hence the Favicons won't show up on the frontend side.
I see 3 solutions :
a) Either attach the favicons to the media library, so they can be automatically synced with all other images ( seems to be the best solution , only hassle being if somebody deletes the favicon in the media library itself; but that's user error then )
b) Upload them to a custom directory such as /wp-content/uploads/favicons/ which can then be easily added to W3TC Custom files settings
c) If W3TC is present and CDN option is enabled, add the current favicon url to the custom file list automatically. ( Downside is removing old ones / updating the list when the Favicon changes )
As of now, All-In-One-Favicons and W3 Total Cache seem incompatible, unless the exact files will be specified for upload; which is a huge hassle then for non-experts.