Ah so code will be smaller compared to if they added separate resources but still larger than it was previous to the retina support due to the extra coding involved. I guess that's as good as reason for people to get the next larger memory sized iPad. :P

For apps, yes, there was a cap on the size they could be, which used to be 20MB. Any app over that size could not be downloaded over a cellular data connection, you would need to use wifi or sync via iTunes. This could present problems to developers with graphic heavy apps who could not go over this limit as they needed the app to be available for download over a cellular data connection.
Apple upped this limit to 50MB. This offers a bit more freedom, but some people only have a 50MB plan, so apps could whack that plan on the head quite easily,

Note that this limit was only for apps. If you're running an app then it can download us much as you can throw at it (ignoring the fact you could fill up your device)

Correct, app will be larger as there are potentially x2 the number of graphical assets. If we could draw all the images in code we would, but as said that would be a massive undertaking. If there was a nice way to convert vector / bitmap images to objective C code then it would simplify things, but that is a massive ask.