Hi Edward,
You're looking at how we support the two software development flows for Nios II: sources under the 'sdk' of a peripheral operate like they did in Nios I, and require you to use the 'legacy SDK' in Nios II. These sources are not intended to work with the new flow (although they can be ported with some effort). Sources in the HAL and inc subfolders are intended to be used with the new flow using HAL & the IDE.
If you want to use the HAL/IDE, but are concerned about code size, I suggest that you take a look at the hello_world application and read the comments in hello_world.c -- they describe how to make a hosted (non alt_main) application using the HAL and UART for STDIO fit in just over 3K of space... in fact the size comes out about the same as taking the alt_main() approach to reduce code size; not too bad. Going the alt_main() route is useful if you wish to have tight control over program initialization.