Потому что вы обработчик вешаете после загрузки страницы, когда второго ДИВа еще не существует.
Так работает:
<div>Первый Div</div>
<button>Создать</button>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function() {
    $("body").append("<div>Еще один Div</div>");
    $("div").click(function() {
       $(this).replaceWith("<div>Заменен</div>");
    });
  });
});
</script>