Actually, both have their respective places. Linear is better for games that relly heavily on history and want a cinematic feeling (can't imagine Uncharted as a open world game). If the history isn't the focus and all the developer want is based on player's choices, then non-linear is the way to go.