1) You only need to add files to the extension target that you are actually going to use. I would recommend you only what you need to find files in File Inspector, adding them for both purposes.
2) Yes, that’s right. You will need to update libraries that check this for you or fork them and fix them yourself.
3) I think that you refer to the default templates when creating one of the application extensions. Yes, you need to use UIKit not Foundation. The foundation will work for iOS or OS X, but is clearly not enough if you are making a UIKit application.
4) The link_with command will make all the blocks in your link signatures to all specified goals. If this is what you need, then well, do it. If you just need a small subset of containers for your extension, use the following:
target 'whateverTarget', :exclusive => true do pod 'SomePod' end
source share