What works best in "Cromwell" is the contrast between Charles and Cromwell which is expressed perfectly in a great debate about whether ordinary men are capable of extraordinary things. Cromwell takes one side of this argument as he fights for a more just society but loses himself along the way, eventually becoming a tyrant as much as the one he eliminates. On the other hand, the subject of religion is skirted over as is Cromwell's brutal stint in Ireland.(Gore Vidal once wrote that the Puritans left England not because they were persecuted but because they were persecuting everyone else.) The movie's one critical error is in arguing that a country requires a strong head of state to succeed. Just don't knock anarchy if you haven't tried it.
The sets are impressive in this and the battles are adequate, though I doubt anyone is really watching this these days for the battles. Just remember, open a book after reading it and clear up the details. (Look into the Rump Parliament and look at who Cromwell really was.)
Richard Harris, born a Catholic, in a superb performance as probably one of the most Anti-Catholic characters in English history.
Alec Guinness is superb as his royal antithesis, Charles I.
Both actors portray their respective parts with more sympathy than the real individuals attracted at the time or since. A testament to the deserved reputations of each actor.
Typically for a "historically accurate" movie it suffers from a broad range of historical inaccuracies. Cromwell's role in the causes of the outbreak of the war is seriously exaggerated. For a start he was not in regular meetings with Charles, he only met him once and that was on the Ilse of Wight. Cromwell did not enter Oxford to arrest the king. Neither was he at the Battle of Edgehill. Charles surrendered to the Scots and was handed over to the English, to Cornel Joyce's troops.
Oliver Junior did not die at Naseby 1645, he died of smallpox in 1644.
Historical accuracy sucks, but it is a good film.