In true Forex fashion when you click that button and they cant get that rate for you it should read "Rates Changed". Now Bitcoinica just decides to treat it like a stock market order and place it when they can. Which is really not right and the reason I only use Limit orders.
I used Forex.com's trading panel before, and actually they allow you to set a percentage limit for "Instant Execution". So basically you're placing a limit order, but if it can't be executed immediately (due to "Rates Changed"), the order is abandoned.
However, market order is market order. If you specifically place a market order, it shouldn't be canceled due to "Rates Changed".
I understand what a market order is. It's just the way you're handling the instant buy/sell buttons that is wrong IMO. With the already long delay in order processing times, the price shown on the site when you click buy/sell could be much different once its placed.