In textbooks and lecture notes and slides posted online, determining allele frequencies using blood type information (ABO), under the assumption of Hardy-Weinberg equilibrium, is accomplished using the EM algorithm. It seems to me, though, that this problem can be solved using basic algebra: If $a$, $b$, $o$ are the frequencies of the $A$, $B$, and $O$ alleles, respectively, and $p_A$, $p_B$, and $p_O$ are the proportions of the population in question displaying blood types $A$, $B$, and $O$, then
$$ p_A = a^2 + 2ao,\quad p_B = b^2 + 2bo,\quad\text{and}\quad p_O = o^2. $$
Inverting the third equation gives $o$ in terms of $p_O$:
$$ o = \sqrt{p_O}. $$
Plugging that into the first equation and rearranging, we get the quadratic equation.
$$ a^2 + 2\sqrt{p_O}a - p_A = 0 $$
Solving using the quadratic formula and throwing away the negative solution, we get
$$ a = \sqrt{p_O + p_A} - \sqrt{p_O}. $$
Symmetrically,
$$ b = \sqrt{p_O + p_B} - \sqrt{p_O}. $$
Thus, we've solved for the allele frequencies $a$, $b$, and $o$ with only basic algebra.
In the standard textbook case in which $p_A = fa = 186/521$, $p_B = 38/521$, and $p_O = 284/521$, this gives
$$ a \approx 0.21,\quad b\approx0.05, \quad\text{and}\quad o\approx0.74, $$
which is close to what you get after a few iterations of the EM algorithm.
Question (finally): If the above calculation is correct (if not, please let me know!), what is a "simplest" non-synthetic (real data, from the literature) example of an allele frequency computation from phenotype data that actually requires a sophisticated technique like the EM algorithm?