Not quite sure what you're asking, so if this reply sounds weird, I probably misunderstood something, anywayz:
Reg. Lock/Unlock. The general rule is that you can't use blit on a locked surface. If your source surface is never changed, you can lock it, get a memory pointer and then unlock it, but continue to use the memory pointer (I don't know if this is legal, but I seem to get away with it ). Locking one surface should not prevent blitting to/from other surfaces.
Reg. different size front and backbuffers: I assume the reason you're talking front and back buffer is that you intend to use flip() in which case different size buffers doesn't make much sense. There's nothing stopping you from creating an offscreen surface with a different size than your primary surface (In either V-Mem or sysmem)...