@nergal: I don't understand the first question, so the answer is probably "no". The second question is a non-sequitur, there has never been a rule that natives can't return floats. You might be referring to the fact that some natives (like GetArrayCell) have untyped returns, which is something we did mostly for own convenience (rather than have GetArrayInt, GetArrayFloat, etc). It's not great, certainly.
@Powerlord: I don't understand what you mean by "different syntax". The syntax for type-expression parsing is fairly well-formed, it's just that the types on the get/set methods are chosen for you, so you don't get to specify them again. In the getter case, it's the type-expr of the property, in the setter case, the return type is void. But, natives cannot return arrays yet, so it would be difficult to construct a useful property getter that returns an array. I think you could probably do a setter though.
Also note that even though setters return void, that doesn't affect assign-exprs. For example, (x = (a.b = c)), if |a.b| is a setter (therefore returning void), the result of the assignment expression is always |c|. So I actually have no idea what would happen if you did that with an array-setter
the compiler's handling of arrays is fairly tricky.
__________________