Why does OOXML not include macros, scripting, OLE serialisation, and leave so much to be application-defined?

Competition between Office Automation suites has always been an important factor in driving much of the innovation that we enjoy in the industry and as users today. The process to standardise OOXML is a process to standardise the data format, not an application. Standardising the full application would remove the ability for different office applications to compete with each other and slow that pace of innovation.

Sorry, but the macros are stored in a file format, so not defining how to interpret this data will lead to a competitive advantage for the company of Redmond, and will be a killer for interoperability. I don't want to buy a Windows license and an Intel PC just to be able to decode their crappy format.

I believe your interpretation is a bit over the top. We know for a long time that macros, the only thing that really creates trouble when you move to another document file format is not specified by DIs 29500.

But: have you seen the latest Rodriguez articles? It relates to the same problem for the binary formats.