Try using the newer geoshow function instead of plotm. All the lines are displayed if I replace
plotm(lat,lon,'-k')
with
geoshow(lat,lon,'Color','k')
Even for your case number 4, which has identical endpoints,
geoshow([30 30],[-180 -180],'Color','k')
results in a visible object --- but you'll have to turn off the frame
framem off
and look carefully at the edge of the map to see it, because it's just a single point.