I think you can allow each M/R task to configure the chunk size because every task has a different requirement. If you like, you can put the statetransfer.chunkSize as a default and a setter to allow overwrite this value...

just my 2cents.