Why Helmert coding in R divides subsequent differences This question is about a weird behavior of Helmert coding  in R as implemented in the standard contr.helmert function.
First of all, it seems that contr.helmert in R implements what more often is called reversed Helmert coding, but that is fine. The problem is that it seems that subsequent regression coefficients get divided by $1, 2, \ldots, n$ where $n$ is the number contrast vectors including the intercept.
The code below shows what the problem is about.
m <- lm(formula = Sepal.Length ~ Species, data = iris, contrasts = list(Species = "contr.helmert"))
coef(m)

(Intercept)    Species1    Species2 
5.8433333      0.4650000   0.3723333 

Let us also calculate group means
(M <- tapply(iris$Sepal.Length, iris$Species, mean))

setosa versicolor  virginica
 5.006      5.936      6.588 

Now, the intercept is correct and is equal to the mean of cell means. However, the first regression coefficient is equal not to:
$$
\text{versicolor} - \text{setosa} = 5.936 - 5.006 = 9.30
$$
but to:
$$
\frac{\text{versicolor} - \text{setosa}}{2} = 0.930 / 2 = 0.465
$$
Similarly, the second coefficient should be equal to:
M[3] - mean(M[1:2])

virginica 
    1.117 

But is equal to
 (M[3] - mean(M[1:2])) / 3

 virginica
 0.3723333

Is there any justification for this weird behavior or is it a bug?
I checked that if you define a Helmert coding matrix by hand to give proper estimates
then it is still orthogonal, so orthogonality cannot be the answer here.
 A: It's been that way since before R existed, so you can be reasonably confident it isn't a bug. For an authoritative source, the definition is given in chapter 2 of Statistical Models in S, by Chambers & Hastie.
According to Annotated Readings in the History of Statistics by David and Edwards, Helmert (1876) actually defined the transformation
$$t_n  = (j(j+1)^{-1/2}(j\epsilon_j-\epsilon_1-\epsilon_2-\cdots-\epsilon_{j-1})$$
in order to derive, basically, the $\chi^2$ distribution. The scaling is not the same as either the S version or the 'proper' version.
Lancaster (1965) wrote about Helmert matrices 'in the strict sense' as being the same as Helmert's definition. He is clearly talking about their use as contrasts. In terms  of the S contrast matrix, the columns would be rescaled to unit norm rather than to have 1 as the largest element.
All the sources I have found that use the S version and have a citation cite Chambers & Hastie -- eg the NAG Fortran lm_design_matrix routine
It looks like the two current definitions of Helmert contrasts diverged from Helmert's definition some time between 1965 and 1990, but I don't know any more than that.  If I had to guess, it would that someone in the past who was interested primarily in testing contrasts (where the scaling is irrelevant) thought the integer-only version gave simpler hand computation.
