The problem is that the GPL considers adding a single GPL method to a large non-GPL project as being a derivative work of the GPL method.
Moreover, it considers the interactions between the method and other code a derivative of the GPL, even if only the implementation was under GPL but the header/API was provided under a more liberal licence.