How to delete blocks and why some you can delete and others you can't?
J. Reynolds is right. These blocks are generated from code. This means this block is added programmatically through hook_block_info(). Some modules use this to define static blocks (like the login block or the "Created with Drupal" block). However some other modules implement this hook in a dynamic way. Views for example uses this to generate a list of all blocks in all (enabled) Views.

So even though you did not create them in code. Some of the modules you use do. Only blocks you have created using the Add block link on admin/structure/block can be deleted.

In order to remove a Views block from the listing, disable the View (or the block display in the view). I have no idea how to hide a block generated from Node as block. And I suppose there is not a real way to remove these blocks from the listing without writing a custom module. 

You could attempt to create a custom module and implement hook_block_info_alter(), in which you unset all blocks you don't want. Maybe something like this:

function MYMODULE_block_info_alter(&amp;$blocks, $theme, $code_blocks) {
  // Attempt to disable the login block by status.
  $blocks['user']['login']['status'] = 0;

  // If above doesn't work unset the block.
  // Array is built like $blocks[module][block_name]
  unset($blocks['user']['login']);

  // Disable all Views blocks (also used ones!!)
  unset($blocks['views']);
}


But to be honest, I doubt if it is worth the effort and it can lead to confusion in the future if expected blocks do not show up. So I'd advice just to leave it.