- Libraries are needed for the program. They contain various functions that you can use in your programs. In standard libraries supplied with compilers, the code of the functions of the standard library , together with the support code.
- Theoretically possible. Just what will be able to such a code? It will not be possible to use any input, output, and even command line parameters or operating system functions (how do you refer to them?) The same Hello will pull the whole library with you - you need not just to output the word, but to open the file stream, process etc etc errors
To the second point - the memories of youth, as in the days of Borland C ++ 3.1, I tried to castrate the startup code, so I had an empty program for a hundred bytes, and added my micro-library — I / O via DOS / BIOS, my memory micro-manager, working with files through DOS. Programs came out really tiny size, as written in assembler. What they, in fact, were. But you had to write everything yourself :)