I am a little confused about share customisations. Are extensions and modules the same thing? Aren't amps just supposed to be modules? Also as far as customisation go I see some references to a *-extension.xml config file (see blog-extension.xml)
You First need to understand the Surf platform as (blog-demo.xml)file is part of new page creation in surf.
Extension Modules are advance way through which you can hook in your code to extension points given by alfresco. So, these *-modules.xml files are related to those extension module.You can also name it as blog-extension.xml so both of those files serve same purpose.
So, In Nutshell Extension modules are one way to extend alfresco share. Consider Extension as Super set and Extension Module as one of the way to achieve that. I could not think of any more logical analogy for this as of now