As far as the "losing 4 out of 5 to Duke" issue, let's keep in mind how the scheduling went just before the Duke-GT game over the last 5 years:
2014 @ GT (L) — Duke: bye — GT: vs.Miami
2015 @Duke (L) — Duke: vs.#23 Northwestern — GT: @#11 Notre Dame
2016 @GT (W) — Duke: bye — GT: bye
2017 @Duke (L) — Duke: @Army — GT: vs.#24 VT
2018 @GT (L) — Duke: bye — GT: @ Louisville
In every one of those four losses, the random vagaries of scheduling(*) managed to hand Duke an advantage over us: two flat-out byes, giving them 2 weeks to heal up and game-plan against us; a tuneup game against another option team, again giving them 2 weeks to prepare; and a game where we played a top-15 team on the road while they played a top-25 team at home. Over those five years,
every single time they played us in BDS, they came in with two weeks of rest(**). The only time the bye didn't help them was the time when we had the extra week, too. On the flip side, both times
we've gone into Somnambulist Stadium, we were coming off a game against a ranked team.
So it's not exactly like we were losing to Duke
on a level playing field. If you were to reverse all of those advantages, it's not unreasonable to guess that you'd also reverse the W-L ratio.
(*) a.k.a. Cutcliffe's compromising photographs of someone in the ACC Front Office.
(**) How much do you want to bet that Duke gets another bye before they play us in 2020?
[Edit-1:
@iceeater1969: I (respectfully) disagree that coaching was the only factor in all 5 games.]
[Edit-2: looking back even further, I see that Duke also had a bye before they played us in 2012—so that's
four consecutive byes before they played us at BDS.]