It's an old concept, known as plists[1]. Common Lisp has them, and uses the same syntax that I'm proposing.
By the way, one benefit of alists is that you can iterate over them easier:
(each '(k v) '((a 1) (b 2) (c 3))
...)
Compared to the following, with a plist:
(each '(k v) (pair '(a 1 b 2 c 3))
...)
Which, incidentally, uses `pair` to create an alist, then iterate over that... I was thinking about how to solve this, and figured a form of destructuring might help: