Getting the Nuxeo source code is not needed to create applications on top of it. You should be able to create your own customizations of the Nuxeo Platform or default applications (DM, DAM, etc.) by creating extensions (also known as plugins), without changing the Nuxeo code.
The advantages of this approach are substantial:
- by running stock Nuxeo EP code + your own customization, it's much easier to pinpoint issues when then happen, and facilitates greatly the support process,
- upgrading to a newer version of Nuxeo EP is much easier,
- you don't need to understand the detailed internal and low level architecture of the Nuxeo Platform, only the big picture + the API you will need for your project,
- if forces the Nuxeo developers to think about extensibility, leading to a cleaner architecture.
Of course, if you are an advanced developer, you may want to join the Nuxeo community as a contributor, in which case you will want to look at the Nuxeo Core Developer Guide, in particular its Getting the Nuxeo Source Code chapter.
You may also want to have a look at this guide if, as a technology evaluator, you want to get a clearer picture of how Nuxeo EP is developed and what processes are in place to ensure the highest quality level.