Looking at the question from another angle:
See the sample code on this web page: AF Pattern
Why not have the GUIFactory simply create the buttons depending on the OS type? - rather than creating factories (based on the OS type) to create the buttons? If it's simply a matter of readability, that's fine. But that doesn't explain the existence of the two patterns?