Your book is not entirely truthful, but as a general simple rule it holds fairly well.
The common exceptions today are that you can have a word-size that is bigger than the address range, such as in most 64-bit CPU's (all I know enough details to understand the address range of) - x86-64 for example, have a 48 bit virtual address range, which technically can be expanded to 53 bits I believe. To go further than that would require a new design of the page-table layout in the machine, so not a trivial change at all. Addresses that are outside of the 48 valid bits (which is actually 47 bits and then the 48th top (or sign) bit expanded to the remaining 16 bits, ensuring that nobody uses the top 16 bits for "clever stuff" that causes a break in the architecture if/when the address range is expanded). AArch64 (ARM's 64-bit processor architecture) also uses only part of the 64 bits for virtual addresses - I think it is 48 bits here too.
On the other hand, 25+ years ago, when 16-bit x86 computers were the standard, they could address more than the 16 bits of a "word" thanks to segment registers that are shifted 4 bits and then added to the 16-bit register value, this allows for 20 bits of address range [1] - or in the 80286 processor in protected mode, the segment register contains an index into a segment descriptor table, which has a base-address, that is added to the regular register value, giving a 24-bit address in total.
And of course, many processors have a more restrictive physical address range than that of the virtual address, because it's "expensive" to put pins for addressing memory onto the outside of the processor. 68000 is a 32-bit processor, but only 24 address pins. Early x86-64 processors have only 40 bits of address pins, giving 64GB of memory range.
[1] Actually a tiny bit over, because you can get the addition of a 20-bit value with the low four bits zero added to the 16-bit value.