There's been talks about using satoshis in RPC instead of BTC, which requires decimals and don't work well with json.
On the other hand, such a change would break the RPC API as well as many tests. This is a draft on how we could move there (doing it only for 2 of the 8 RPC calls that would need to be changed). An useDecimalAmounts optional param is added. If true, the user can introduce BTC amounts as before. If false, the user needs to introduce the amounts in satoshis.
Interestingly enough, for signrawtransaction, useDecimalAmounts can default to false without breaking any tests (which means the amounts in useDecimalAmounts are not being currently tested). In contrast, createrawtransaction would break many tests.
We could slowly adapt the tests to use satoshis and once that's done, at some point in the future we could break the API, remove all useDecimalAmounts params and not allow to BTC amounts anymore.
I didn't want go further before getting some feedback.