Except for OS libraries and similar, distributing two components intended to be runtime-linked together is generally not sufficient separation to be considered "mere aggregation". I would personally not even patch a GPL app to expose a custom API with the intention of using it from a separate non-GPL process; that also seems like it's more than "mere aggregation". (Using an existing / common API seems fine.)
and specifically Steve Jobs asking Richard Stallman if he could avoid having the Objective-C compiler be under GPL:
I say this based on discussions I had with our lawyer long ago. The
issue first arose when NeXT proposed to distribute a modified GCC in
two parts and let the user link them. Jobs asked me whether this was
lawful. It seemed to me at the time that it was, following reasoning
like what you are using; but since the result was very undesirable for
free software, I said I would have to ask the lawyer.
What the lawyer said surprised me; he said that judges would consider
such schemes to be "subterfuges" and would be very harsh toward
them. He said a judge would ask whether it is "really" one program,
rather than how it is labeled.
I am personally not a fan of that answer, but between recent caselaw like Oracle v. Google and some clarifications in GPLv3 around "Standard Interfaces" and the aggregation clause, it seems like betting on any other answer is a bad plan.
See the discussion of libnoreadline.a in this email exchange: http://clisp.cvs.sourceforge.net/viewvc/clisp/clisp/doc/Why-...
and specifically Steve Jobs asking Richard Stallman if he could avoid having the Objective-C compiler be under GPL:
I am personally not a fan of that answer, but between recent caselaw like Oracle v. Google and some clarifications in GPLv3 around "Standard Interfaces" and the aggregation clause, it seems like betting on any other answer is a bad plan.