What is matrix_basis?
From the documentation it states:


  Matrix access to location, rotation and scale (including deltas),
  before constraints and parenting are applied


The key is that it is the matrix before constraints are applied, as some constraints can alter the local matrix.

API docs - bpy.types.Object