The objective of the line of code you referenced is to ensure that the tag length is rounded up to the nearest one of {8, 16, 32, 64} bits. The rationale is explained in Proposed change to variable-length arrays. Unfortunately, the Specification is currently outdated but we will be looking into that shortly (tracking issue: https://github.com/UAVCAN/specification/issues/75).
In the example you provided, the correct tag length is 8 bits. I’m sorry that the specification misguided you but our ability to keep things well-maintained is dependent on the availability of external contributors. If you could help us resolve any of the issues related to the existing implementations documented on GitHub, we would have more time to keep the specification up to date.