Shims ease migration as complete parts of the code, such as validation and other model property settings can be reused immediatelly without refactoring them right away.
Note: It does not hurt to have them, if you don't use them. The overhead is minimal.
The following can be used in 3.x via shim support:
The session component of the core is deprecated and will throw a warning as it will soon be removed. Better use the plugin one right away. It is a 1:1 clone of it.
namespace App\Controller;
use Tools\Controller\Controller;
class AppController extends Controller {
public $components = array('Tools.Session');
}
It also contains the new consume() method.