This is a regression bug starting in Maple 17 and it seems arising at a rewite of the **solve** engine associated with the introduction of the subpackage **SolveTools:-SemiAlgebraic**, see ?updates,Maple17,AdvancedMath . Basically, what happpens is that the original system is rewritten and splited as a pair of systems {2*a+c, 4*c^2-4*c+1, 0 <= a+1/2*c} and {-2*a-c, 4*c^2-4*c+1,a+1/2*c < 0} with inequalities generated out of the square root equation. These systems are solved in turn, the first yielding the expected solution {a = -1/4, b= -1/4, c = 1/2}, and the second one the "solution" {b = -1/2*c}:

> trace(SolveTools:-Engine:-Main):
> trace(SolveTools:-Engine:-Process):
> trace(SolveTools:-SemiAlgebraic):
> solve({c^2-c+1/4 = 0, abs(a-b) = 0, sqrt(2*b+c) = 0});
{--> enter SolveTools:-Engine:-Main, args = {(2*b+c)^(1/2) = 0, c^2-c+1/4 = 0,
abs(a-b) = 0}, {}, {a, b, c}
...
{--> enter SolveTools:-Engine:-Process, args = [[{(2*b+c)^(1/2) = 0, c^2-c+1/4
= 0, abs(a-b) = 0}, {}, {a, b, c}, {}, true, false, 1, {a, b, c}]], initial
...
{--> enter SolveTools:-SemiAlgebraic:-ModuleApply, args = {2*a+c, 4*c^2-4*c+1,
0 <= a+1/2*c}, {a, c}, outputsystem
...
<-- exit SolveTools:-SemiAlgebraic:-ModuleApply (now in Apply) = [[{2*a+c, 4*c^
2-4*c+1, 0 <= a+1/2*c}, {}, {a, c}, [{a = -1/4, c = 1/2}], true, true, 1, {a, c
}]]}
{--> enter SolveTools:-SemiAlgebraic:-ModuleApply, args = {-2*a-c, 4*c^2-4*c+1,
a+1/2*c < 0}, {a, c}, outputsystem
...
<-- exit SolveTools:-SemiAlgebraic:-ModuleApply (now in Apply) = [[{-2*a-c, 4*c
^2-4*c+1, a+1/2*c < 0}, {}, {a, c}, [], true, true, 1, {a, c}]]}
...
<-- exit SolveTools:-Engine:-Process (now in SolveTools:-Engine:-Main) = [[{},
{}, [], [], false, true, 1, []], [{}, {}, [], [], false, true, 1, []], [{}, {},
[], [], false, true, 1, []], [{2*a+c, 4*c^2-4*c+1, 0 <= a+1/2*c}, {}, {a, c}, [
{a = -1/4, b = -1/4, c = 1/2}], true, true, 1, {a, b, c}], [{}, {}, [], [],
false, true, 1, []], [{}, {}, [], [], false, true, 1, []], [{}, {}, [], [],
false, true, 1, []], [{-2*a-c, 4*c^2-4*c+1, a+1/2*c < 0}, {}, {a, c}, [{b = -1/
2*c}], true, true, 1, {a, b, c}]]}
...
<-- exit SolveTools:-Engine:-Main (now in solve) = [{b = -1/2*c}, {a = -1/4, b
= -1/4, c = 1/2}]}
{a = a, b = - c/2, c = c}

Then, as Preben has described already, only the more "general" solution is kept. May be that there are several bugs here. One, I think, is generating the inequality a+1/2*c < 0 from (2*b+c)^(1/2) = 0 and abs(a-b) = 0. A second one is about the criterion for selecting solution candidates. And a third one is "deducing" a=a and c=c from -2*a-c=0 and a+1/2*c < 0.