We can derive one possible answer from usages of ToInt32(Int32) in the framework classes.
E.g.
System.Activities.DurableInstancing.SerializationUtilities
public static byte[] CreateKeyBinaryBlob(List<CorrelationKey>correlationKeys)
{
[...]
Convert.ToInt32(correlationKey.BinaryData.Count)
and
System.ComponentModel.Design.CollectionEditor
private void PaintArrow(Graphics g, Rectangle dropDownRect)
{
Point point = new Point(Convert.ToInt32(dropDownRect.Left + dropDownRect.Width / 2), Convert.ToInt32(dropDownRect.Top + dropDownRect.Height / 2));
In both cases we can see that the type of the property or expression is currently Int32, but there's a reasonable expectation that /maybe/ that type might be different on different platforms, CPU architectures, future versions of the framework etc.
So my proposed answer is that it exists as a sort of future proofing of the source code, to allow it to compile without modification even when some key 'entities' (such as window X and Y coords) change type.