in theory it should adapt to your particular way of speaking when checked. In other words, it is for training.
It is not a good idea to leave this on all the time since it could lead to problems if VC is picking up false commands and then trying to learn them.
In practice I'm not 100% sure that it actually ever stops learning. Sometimes I think learning is always on even when I disable it in code, but it's hard for me to tell because VC understands me very well without any training.
According to Microsoft's speech api docs the code I am using to turn it off should work.