Prior to ArcGIS Server v10, this fields information was not available in the query result, so there was no way for Silverlight to know if for instance "10" is an integer, double or decimal, and it's JSON Deserializer will parse it as whatever it looks like (in this case integer).
However if you hit an ArcGIS Server 10, you should be seeing consistent data types on the attributes.