Actually, come to think of it, when the function doesn't call anything else, locals will be indexed off the base pointer and the stack pointer will not be explicitly moved.  So it costs two extra instructions to get aligned locals in a function that needs non-register locals but doesn't call any other functions.  Of course these are 1/.33 (latency/inverse throughput) instructions.