๐ Bug report
Latest master.
https://www.youtube.com/watch?v=ZVv7UMQPEWkThe selection won't move.
Selection is moved to previous or next cell.
I could do it on Firefox and Chrome.

โ๏ธ I have noticed the same behaviour on Safari@iOS.
Still reproducible when pasting a table into a table.
Currently I was able to find out the reason of such situation:
insertContent has special side effect.~This method is so entangled and not so easy to follow. Now it seems that something is allowing table inside a table: https://github.com/ckeditor/ckeditor5-engine/blob/9a40550a7425670264974edc9252f3dcf888ce2f/src/model/utils/insertcontent.js#L544
So fixing this so it will return false for table in table would be enough to fix a bug.~
~Nevertheless I can see that next step is a bit too optimistic - I don't like that checkAndSplit does check and split. The other part I don't like is when we're entering this path even if paste results in no nodes added. But I think that this is a reason because the _getAllowedIn() returns some disallowed node.~
~In a case of $root > table > tableRow > tableCell > paragraph the _getAllowedIn() should return $root not the tableCell or anything else.~
OK after more fidling with this. Basically I see a flaw in while() loop: https://github.com/ckeditor/ckeditor5-engine/blob/9a40550a7425670264974edc9252f3dcf888ce2f/src/model/utils/insertcontent.js#L550
AFAICS it tries to break elements up to so limit element and it does it pretty well but fails when allowedElement is above limit element - like in this case.
We have:
$root > table > tableRow > tableCell > paragraph
^ ^
allowed: ---+ |
limit: --------------------------------+
In such scenario we shouldn't do paste as the schema disallow to paste there.
Also removing anything (special case but anyway) if we cannot paste is also wrong.
Probably it is safe to remove empty node if and only if it's parent is allowedIn (parent.isEmpty && parent.parent === allowedIn).
ps.: it looks like it fixes the issue, but it might need tests for previous special cases (most likely empty paragraph).
Thx for suggestion. I've implement it and it seems to work fine.