The string parameter is used only for logging.
The only place where the string form of the hash isn't recalculated is at src/rpc/mining.cpp where it's obtained from the arguments, however, in this case the uint256 hash is then parsed from the given string.
In every other use of the function, the string representation is always calculated from the uint256 hash object (either with ToString() or with GetHash()), so no real benefit on having this redundant parameter.
This also makes the API more consistent with other methods that only receive the uint256 hash parameter.