Is this a bug, [H | T]?

Nope, not a bug. That’s called an improper list.

Here’s an existing thread about it. What can you do with improper lists?