SendMany does allow you to control the address thou. I generally empty the address each time and then load it with more then enough to send whatever transaction I'm going to send. In the case of this transaction thou. The tx fee put it well over the amount i had allocated for that tx and even a few more.
I didn't think SendMany lets you choose addresses. I thought it only let you choose which "account" to send from. "Accounts" in Bitcoin-Qt do not work the way many people assume they work. When people make assumptions about how accounts work and then attempt to use accounts based on those assumptions, they generally end up with unexpected and unintended behavior from the wallet.
I've also noticed the debug console humorously limits you to 32,767 characters.
I haven't tried to create any really big transactions yet, so I don't know if the API limits the size like that. If you want or need to create transactions bigger than 16,383 bytes, then you'll have to see if the API would allow it. I suspect it will.
I'm currently using some scripting and a source list of addresses to generate my SendMany request. I could probably write a similar script to do a SendRaw once I get all the particulars down. Which I would probably do in the same fashion, generate the request and use the DebugConsole.
If you are already using a script to generate the transaction, you might want to look into having the script communicate directly with the API so you don't have to paste it into the Debug Console.
The most addresses I've sent to at one time was about 2600
That tx was like 100kb
I figured If im going to pay an outrageous fee... I'm going to make the tx as big as possible.
When creating a transaction with createrawtransaction, be aware that if you don't pay a fee of at least 0.0005 BTC per kilobyte for any transaction that triggers a fee requirement (larger than 10 kilobytes, any output less than 0.01 BTC, priority calculation result is less than 57,600,000) , then you are likely to run into issues with peers relaying it.
Also, when using createrawtransaction, be VERY CAREFUL to make sure you send the change from the transaction back to an address you control. This is a step that has been accidentally forgotten by even experienced and knowedgeable bitcoin developers and can result in paying all the change from the transaction to a miner as fees. It can be an expensive mistake to make.