Even if it's consistent within files, you can still run into big problems. If the different macros supply slightly different functionality, you could end up in a situation where you have two different types of classes that can't be used interchangeably. It's not a problem if you write all the code, but once you start pulling in other code all bets are off.