This question is about hotpatching. The core of hotpatching is to replace the first two bytes instruction with a two bytes short jump instruction. Microsoft guarantees the first instruction of a hotpatchable function is at least two bytes. Let's call it hotpatch point.
To ensure the replacing operation is an atomic operation, the address of the hotpatch point must be at least 16-bit aligned, MSDN says nothing about this.
So my question is: Does MSVC/Win32 guarantee function start address is aligned ?