Why is the phrase "We assume the reader to have [...]" not ungrammatical

Solution 1:

It's more formal because it's an older grammatical form. It hasn't completely died out yet—rather, it's been relegated to formal usage. But your suggested alternative we assume the reader has ... can be used in even the most formal writing today (although I'm not sure this was the case in 1850).

Consider this Ngram

In the first half of the 19th century, the most common expression was suppose him to be, but now the most common expression is suppose he is. The Ngram for assume is similar, but is unfortunately complicated by the fact that the use of assume meaning suppose was much less common in the 19th century. See Ngram. But I assume that the grammar of assume and suppose behaved similarly.