Actually number 5 is not an issue. Defining macros in the preamble is a custom but you can define macros anywhere.