What is the meaning of Dashing[Block]? What is the 12 in Directive[Black, 12]? Did you mean to specify the Thickness? That's not the way to do it. Your function l[r] behaves very differently with exact rational values of r and with floating-point values. Compare the time it takes for l[.5] and for l[1/2]. Why do you resort to ListLinePlot with rational values of r and not just do this:
Plot[l[r], {r, .01, .8}, PlotStyle -> Black, PlotRange -> {0, 0.5},
Frame -> True, RotateLabel -> False,
FrameStyle -> Directive[Black, Thickness[.004]],
FrameLabel -> {Style["r", 13, Bold, Black],
Style["N", 13, Bold, Black]},
PlotLabel -> Style["b", 13, Bold, Black]]