Just as esoteric but much more complicated is Z-80 Machine Code for Humans by Alan Tootill and David Barrow. The title is unfortunate as the book seems to be a regurgitation of others which follow the same lines. It provides concrete examples of what can be done when you and not the Basic operating system control the microprocessor.
The unfortunate aspect is that it is difficult to tell whether it is a machine code trainer or if it is a book for programmers who know how to use the language but do not know what to do with it.
There are several machine code routines in the book, including printing a string of text on the screen all the way up to drawing high-resolution lines.
The book is not machine-specific but most of the routines should work on the Spectrum and some of them on the ZX-81. Any reader, however, should make some allowance for the fact that Sinclair machines use a Z-80A processor and not the Z-80. In most cases there is little difference but you should be careful to check.