Hello Gavin, and thanks for the pointer.
Now from what i see at rpcwallet.cpp, line 519, with today's master (commit 23826f1)
if (params[0].get_str() == "*") {
// Calculate total balance a different way from GetBalance()
// (GetBalance() sums up all unspent TxOuts)
// getbalance and getbalance '*' should always return the same number.
And a couple of lines above that
if (params.size() == 0)
return ValueFromAmount(pwalletMain->GetBalance());
Which is consistent with both the comment and the issue you opened.
So ... I guess that for this not to have been fixed yet it means that either it is an expected/wanted behaviour in which case it might not be bad to document it, or that something bad might happen if it is fixed and suddenly behaviour changes. Right ?