AccountingForm and similar formatters are typeset with an InterpretationBox:
InterpretationBox[boxes, expr]
is a low-level box construct that displays as boxes but is interpreted on input as expr.
The internal "kernel" FullForm is still AccountingForm[1500.12,...], but the box form in the front end is
Cell[BoxData[
TagBox[
InterpretationBox["\<\"1,500.12\"\>",
1500.12,
AutoDelete->True],
AccountingForm[#, {7, 2}, DigitBlock -> 3]& ]], "Output",
CellChangeTimes->{3.697810013552223*^9}]
When the expression is copied in the front end and pasted as input, the InterpretationBox is passed to the kernel and "interpreted," that is, the second argument 1500.12 is used for the value.
The OP's example, with the output copied as input:

One can do the same thing programmatically with
ToExpression@ToBoxes[x/2, StandardForm]
(* 750.06 *)
The upshot is that output-formatters are intended to be used for formatting output, not internally in computations. At least, that seems to be the intention.
Appendix
I just noticed this subtlety:

If the output of the first line is typeset, then in the subsequent %/2, the AccountingForm is interpreted as a number; if the output suppressed with a semicolon, then the internal FullForm is used and AccountingForm[..] is left unchanged.
AccountingForm[]thing, the line is repeated, for instance, inNumberForm[]. – Feyre Mar 06 '17 at 14:08AccountingFormas an example; hence the "e.g.". – Edmund Mar 06 '17 at 14:34Out( ie%) accesses prior "results" without the "wrapper" if the previous expression is wrapped in a "*Form". (also not well documented) – george2079 Mar 06 '17 at 16:45