Both "kilobyte" and "kB" are also sometimes used to indicate binary (1024 byte) units. This usage well predates the invention of dedicated binary "kibi-" prefixes, especially in contexts where true decimal units would make little or no sense.
For example, RAM usage is always measured in binary units (e.g. a "4kB page" is always 4096 bytes, never 4000), so the more familiar "kilo-" or "mega-" prefixes are typically used even if the actual sizes are binary.
In your case (I checked the kernel code that creates the /proc/meminfo file), the kernel internally counts memory in terms of free pages (which are typically 4k or 16k but always power-of-two) and its show_val_kb() function uses a bit shift operation (which is equivalent to a multiplication by power-of-two, producing binary units again) to convert the page count into a kilobyte value:
static void show_val_kb(struct seq_file *m, const char *s, unsigned long num)
{
seq_put_decimal_ull_width(m, s, num << (PAGE_SHIFT - 10), 8);
seq_write(m, " kB\n", 4);
}
(On x86 and x86_64 systems PAGE_SHIFT is always 12, so a memory page is 1 << 12 bytes which is equal to 1×212 i.e. 4096, and the above function ends up multiplying the page count by 2(12−10) before displaying it as "kB".)
The 'lsblk' and 'fdisk' disk partitioning tools from util-linux also work with binary units by default. For example, +2G in fdisk is equivalent to +2GiB. (However, fdisk also accepts +2GB if you want a decimal-sized partition for some reason.)