La solución de calcular el valor absoluto y luego multiplicar o no por -1 me parece la más cómoda. No sé si sería más eficiente comprobar los valores:
Código Delphi
[-]
IF ValorPositivo < 0 THEN
ValorPositivo := ValorPositivo * (-1);
IF ValorNegativo > 0 THEN
ValorNegativo := ValorNegativo * (-1);
Vamos, que no sé cómo está implementado "ABS", porque si el compilador la expande como hace, por ejemplo, con INC y DEC entonces creo que da lo mismo, casi.