Currently Arabic has negative number patterns with sign logically following the number. Per Roozbeh this is incorrect, the sign should logically precede the number, but CLDR has it the current way to address bidi display ordering issues.
Also, we get a lot of feedback that even with the above hack, the display ordering is often not what users expect. Certainly for Hebrew (with "latn" digits) the normal convention would be that sign is displayed in the left (regardless of paragraph direction), and logically precedes the number (the latter is already true for Hebrew at least in CLDR). For Arabic there is more diversity of opinion and convention, but the best default behavior seems to be (and Roozbeh agrees): When "latn" digits are used (as in MA,DZ,TN,LY) then the number should always be displayed on the left; when "arab" digits are used then the number should always be displayed on the right. This is the strong feedback we have from a survey of our Arabic locale experts.
To accomplish all of this I think we need to do the following:
In "ar", change the negative decimal and currency patterns for both "arab" and "latn" digits to have the sign first (or delete the negative pattern if doing so makes it redundant).
In "ar", for "arab" number symbols, add RLM in front of the + and - signs
In "ar" and "he", for "latn" number symbols, add LRM in front of the + and - signs
Change ICU number parsing to be tolerant of presence/absence of RLM and LRM when parsing numeric affixes; filed the following for this: http://bugs.icu-project.org/trac/ticket/10161
I have already implemented this in Apple's ICU and it seems to work well.