It is great for references, but not for reading in a non-linear way. They are called "manpages" after all, not "mantomes" :-P.
Texinfo and similar are much better for this and the info format is fine as a text-based format (or with some minimal image use but not all viewers support those).
The problem is that the default `info' viewer feels weird to most people, but there are alternatives like `pinfo' (which IIRC uses lynx-like keys) and `tkinfo' (a GUI-based viewer written in Tcl and Tk). IIRC KDE's help viewer can also view info documents.
Texinfo and info is also nice with its index functionality and how it supports multiple indices. In a way info is kinda like CHM (but with optionally multiple indices) and Texinfo is the official way to make info documents.
mature project packaged for Debian and other distros, nice colorful curses-based UI, fast muscle-memory conducive keyboard control, you're welcome
$ info git | less $ info git | head
info: No menu item 'git' in node '(dir)Top'
GIT(1) Git Manual GIT(1)
NAME
git - the stupid content tracker
SYNOPSIS
git [--version] [--help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]man page or web search