Yep i entered valid html and tinymce formated that html. So editor has some hidden rules when formatting visual to html. If you enter at the end of a line it will place p tag, if you shift+enter it inserts br tag. You can not see that in html tab if you switch to it but it appears only at the page if you open it in a browser. Moreover if you enter tag line and enter and then second tag line in html mode, editor will insert in that place(between that lines) p tag and you can see that only in the page opened- that’s weird behavior.
After all only problem with html is that editor remove empty tags, tags without text in it but it can be helpful when you apply clearboth rule in css for example. So where to fix that in editor options ? May be there are other hidden filters when you insert table for example.