Note: consider this answer a work-in-progress. After nice debates in comments and chat I see there is needing to provide references and explanations to many assertions.
Short answer: Carol has the right to do it and new font processing library can have a single MIT license.
Little bit longer answer: according to copyright law (note that even if GPL is a contract this distinction is - almost always - not applicable). Knowledge (seeing original GPL source code) does not make your code derivative work. It's an absolute undebatable point; ad absurdum imagine if after working for company X you can't write similar software for company Y because you saw X's source code. That's exactly your market value for company Y and any legal action against this is a severe infringement of labour's rights (of course patented - not just copyrighted - code can't be rewritten).
In more simple terms, imagine you're a CS student in University and you extensively study Linux (or Minix) source code in your OS design course. You finish university and you decide you want to write your own (even closed-source!) kernel. For sure you will use concepts you learned studying Linux source code (concepts, not code). If those concepts are not patented (and I can't think about any patented code in Linux) then what you're doing is perfectly (and obviously) legal.
Easy and reasonable? There are few obscure points (and jurisdiction matters)...
Under Trade-related Aspects of Intellectual Property Rights (TRIPS) agreement member states have to ensure that certain minimum standards are implemented into their national laws. Article 9(2) states that:
Copyright protection shall extend to expressions and not to ideas, procedures, methods of operation or mathematical concepts as such."
This is similar to US point of view about copyright (even if even in US there have been cases against this rule) where same concept is described as:
In no case does copyright protection for an original work of authorship extend to any idea, procedure, process, system, method of operation, concept, principle, or discovery, regardless of the form in which it is described, explained, illustrated, or embodied in such work.
The EU approach (in directive 91/250/EEC) is that a computer program is original if it is the author's own intellectual creation. The work must not be trivial – the author must have expended some skill, labour, judgement, knowledge in creating it. Note that knowledge is associated to author and it's not a result because it's the important point of above paragraphs. US copyright law defines "derivative work" as:
“derivative work” is a work based upon one or more pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted.
As I said there are however obscure points. For example Pumfrey J. (UK High Court judge) in an April 1999 case (CFI vs. Tradition) said:
It seems to be generally accepted that the "architecture" of a computer program is capable of protection if a substantial part of the programmer's skill, labour and judgement went into it. In this context, "architecture" is a vague and ambiguous term. It may be used to refer to the overall structure of the system at a very high level of abstraction...The term "architecture" may also be used to describe "program structure."
This decision has very big implications because (unless otherwise stated) copyright owner is employer (and not employee). It seems pretty unreasonable (to me) and against traditional concept of copyright, for example another 1992 UK sentence (John Richardson Computers) decided in the other way. It's still a controversial topic because it's against traditional copyright concept (developed in US courts, with few exceptions). Eric S. Freibrun well expressed this point:
While a patent can protect the novel ideas embodied in a software program, a copyright cannot. Copyright protection extends to the particular form in which an idea is expressed. In the case of software, copyright law would protect the source and object code, as well as certain unique original elements of the user interface [...] In contrast with patents, independent development of a copyrighted work is a defense to an allegation of copyright infringement. Imagine, though, how unlikely it would be for the same thousands of lines of code to be created independently by one not engaged in unauthorized copying. Unlike patents, copyright law affords no protection to the ideas underlying the program. Ideas and concepts are fair game for competitors to the extent they are not protected by patents or trade secrets.
Please note that Freibrun introduced a fundamental point: trade secrets. They're (one of) the reason IBM won its copyright legal battle.
Because judgment is so often discretionary (at least in some countries) we have tools like CRD (but big companies can still push you in endless expensive legal actions). The point is that it has to be judged case-by-case in the light of the skill and labour in design and coding of source code to be copied. It is not determined by its importance or size nor by the amount of use in the system.
In short the question to answer is: "can you write such code by yourself even if you didn't see (this doesn't imply you really didn't) Alice's code?" If answer is yes (no matters code quality) then it can't be considered copyright infringement even when law is unclear (like in UK or in US when big companies are involved.) If you used ideas end methods then - in some countries - it may be controversial.