Using a Free Software license, we have to give everybody the rights that the maintainers have. We never give everyone the right to change distribution terms of a piece of code. For example, we don't give any user permission to move a function from Emacs (covered by the GPL) to libc (covered by the LGPL) or from the GCC sources (covered by the GPL with no exceptions) to libgcc2.c (which has an exception for linking into executables). Users can change any function into a template or a macro or an inline function if they want, but they can't change the distribution terms.