I have investigated this and foun that this doesn't always download the attachment - but it depends on the device type and account. A workaround is to set an additional status property on the message:-
message.Properties[
MessageProperty.MessageStatus] = (int)message.Properties[MessageProperty.MessageStatus] | 0x00200000;
Depending on the account type you will probably need to call Synchronize after setting this (unless it is an ActiveSync account and you have a network connection).
You do not need to call RemoteDownload() on the message unless you also want to download the message body. This means it is possible to download attachments in full but not the body text - the same way you can through the Messaging application. The workaround will be incorporated into the next release (v4.2)
Peter