When an INSERT query is fired, SQL server records this in its log and sends the confirmation to user that query is complete. Meanwhile it also updates the data page. Both of these (log and data page) reside in the memory.
I think you have a misunderstanding here: at commit time, the (relevant part of) transaction log is committed to the log files on disk. This is what ensures that committed transactions are not lost. Yes, the log and data pages are also in memory, but that is just a buffering mechanism, it does not ensure durability of transactions.
Irrespective of the recovery model (simple, bulk or full), whenever a checkpoint occurs, SQL server will flush the log and dirty pages from memory into the disk.
Again, a misunderstanding. Checkpointing is a different process, whereby the log is copied into the main data files, and therefore the log on disk can be flushed. At this point, the data files on disk are now up to date with any previous transactions.
Question: Suppose there is a power failure after sending confirmation to user and prior to a checkpoint, then, since the log from memory is not yet written to disk, will this INSERT operation be lost, even though the user had got a confirmation? Does this violate the Durable property of ACID?
As explained above, all transactions are flushed to disk (in the log file) at commit time. In the event of an unexpected shutdown, at restart time the log is rolled forward, in other words: all committed transactions are pushed through to the main data pages.