1. Теоретические проблемы с дефайнами. В целом если такие проблемы возможны, я бы сказал, что это повод что-то переделать.
2. static функции, так они могут совпадать в разных файлах, а с такой амальгамацией — не могут, нужно следить за этим, но в целом это не проблема, т.к. будет просто ошибка компиляции.
Мне кажется, лучше попробовать разобраться с предкомпилированными заголовочными файлами.