"b 0x12345" will place a line breakpoint at line number 0x12345 of the current source file. The "nonsensical" extra asterisk is used to tell gdb that you want an address breakpoint instead.
This is consistent with what Daniel Kahneman's "Thinking Fast and Slow" says - engaging System2 (thinking) diminishes System1's (intuitiveness) capacity.
PC: “CRUD refers to basic database functions — create, read, update and delete — and in my mind, the acronym describes most poorly built products: a database with a UI slapped on top of it, with no real user experience to speak of.
We want to showcase the best of Indian creativity and ingenuity in product development. So we coined the name NotCRUD to describe quality custom-built software and hardware that Indians are capable of building.”
AFAIK, the kernel APIs only deal with abstract handles and descriptors - they aren't written specifically for disk IO or network IO. And C#'s async/await and BeginXXX also work fine with all kinds of IO.