You can post-process the plot to split the line into separate lines.
fa1[x_] := Which[x >= 15, 1, x >= 10, 0.55, x >= 5, 0.1]
plot = Plot[fa1[x], {x, -1, 20},
BaseStyle -> AbsoluteThickness[4],
PlotLegends -> LineLegend["Expressions",
BaseStyle -> AbsoluteThickness[4]]];
linepos = Position[plot, Line];
a = Extract[plot, ReplacePart[First@linepos, -1 -> 1]];
b = Last /@ a;
c = Partition[b, 2, 1];
d = #1 == #2 & @@@ c;
e = DeleteCases[Split[d], {False}];
f = Length /@ e + 1;
g = # + {1, 0} & /@ Partition[Prepend[Accumulate[f], 0], 2, 1];
h = Take[a, #] & /@ g;
plot[[Sequence @@ ReplacePart[First@linepos, -1 -> 1]]] = h;
plot

Exclusions->{10,15}, but I imagine you want a more generic solution? – ciao Jul 06 '14 at 19:50fa1[x_] := Piecewise[{{1, x >= 15}, {0.55, x >= 10}, {0.1, x >= 5}}, Null]produces the desired plot without having to specify exclusions manually. – Jul 06 '14 at 20:10