sysdate>'01-01-17' //is valid
sysdate-'01-01-17' //is in valid
Forget implicit conversion. Just express your dates using explicit date literals:
sysdate > date '2017-01-01' sysdate - date '2017-01-01'
The code is clearer and less ambiguous as well.
As to why Oracle doesn't do implicit conversion in the second case. Oracle doesn't know what type to expect. The second operand could be either a date or a number, so it doesn't know how to convert the string. In the first case, the comparison should be to a date.