What tasks does Graphics hardware perform and what steps does it follow to do so
At first there was text display, which each character displayed from a character generator ROM, sometimes complemented with semigraphic characters (like Teletext, ZX-81 characters...)
Then came the raw framebuffer where the CPU had to paint each pixel (IBM : CGA, Hercules), sometimes with hardware assistance for overlay/masking colours (IBM : EGA, VGA multiplane), sometimes with an hardware cursor overlay (to avoid wasting time redrawing the cursor and erasing it each time the mouse moves)
Then came a few 2D graphic primitives :


BITBLT / Blitting. Copying rectangular areas on screen and/or to memory.
FILL : Filling rectangular areas with a solid colour.
Character display : Expanding 1bit per pixel character shape data to suitable colormaps.
Line drawing. The famous Brezenham algorithms.



These hardware acceleration features were usually done with fixed hardware logic. Sometimes, DSPs or special purpose CPUs (for example Texas Instruments TIGA chipsets) were used to offload the main CPU.
These efforts were sometimes defeated when the cost of transferring data or programming the graphic accelerator exceeded the time required by the CPU for doing the work itself, especially when special effects (like transparency) were needed.
2D rotation is not used enough to reward hardware acceleration. In games, pre-rendered rotated sprites were stored in memory.

The hardware complexity and cost must be balanced with the time saved by the main CPU. Blitting and filling is very useful, drawing shapes like anti-aliased lines and Bezier curves are often beyond the capacity of 2D hardware.

(For a recent example of basic 2D acceleration in small ARM SOCs, look for "ST Chrom-ART Accelerator")