We should be able to have the following code work:
Literal literal = ff.literal( "#0000FF" );
Color color = literal.expression( null, Color.class );
But it returns "null".
The work around it to use the utility method:
Color color = SLD.color( literal );
Consider this a feature request; part of the magic of having converters is our expressions working out of the box.