A few potential problems:
First, if you have checked baggage, your bags will (usually, unless you've arranged an overnight in ORD or something) be checked through to GSO. That's obviously not what you want, so you'd have to make the entire trip work in a carry-on, and be certain you won't be required to check your bag if it's deemed too large or the overhead bins are full.
Second, if something goes wrong, the first airline has been contracted to get you to GSO, not ORD. If your flight is significantly delayed or cancelled, they have the right to rebook you through another airport, and you'll never catch your flight to KEF.
Third, if something goes wrong, you've arranged your own connection. The airline operating ORD-KEF is not responsible for your connection at all, and if you miss your connection (such as if your fight flight is delayed or cancelled), you're at the mercy of their policies, which could involve an expensive last-minute ticket purchase. When you buy a single ticket from the airline, they're responsible for your connection, and will have to reticket you at no additional cost.
Fourth, a schedule change could ruin everything. If either flight has a schedule change that interferes with your connection, your itinerary is broken.
Fifth, this doesn't work with roundtrips. If you book a roundtrip DFW-ORD-GSO and don't take the ORD-GSO leg, the airline will cancel the rest of your ticket.
Sixth, there's at least some danger the airline could penalize you for hidden city ticketing (or at least threaten you with a warning), though this is mainly likely if you do this frequently.