Hi Luke! Thanks for your willingness to engage in this discussion. Let me reply in one place.

Comment 2.1

Incidentally, negative numbers and zero are integers too. Indeed,
In[]:=
#∈Integers&/@{-1,0,1}
Out[]=
{True,True,True}
Actually, this discussion yields a fascinating example of the difference between:
◼
  • Taking a limit first and then applying assumptions (my implicit way), and
  • ◼
  • Invoking assumptions first and then taking the limit (your way).
  • 2.1.1 Taking a limit and then applying assumptions (my way)

    Let’s find the limit first:
    In[]:=
    Limit[x/IntegerPart[x],x->n]​​Limit[x/IntegerPart[x],x->n,Direction->"FromAbove"]​​Limit[x/IntegerPart[x],x->n,Direction->"FromBelow"]
    Out[]=
    n
    IntegerPart[n]
    Out[]=
    n
    IntegerPart[n]
    Out[]=
    n
    IntegerPart[n]
    Now let’s invoke the assumption
    n∈Integers
    for a sample of integers:
    In[]:=
    n
    IntegerPart[n]
    /.n->#&/@{-3,-2,-1,0,1,2,3}
    Power
    :Infinite expression
    1
    0
    encountered.
    Infinity
    :Indeterminate expression 0ComplexInfinity encountered.
    Out[]=
    {1,1,1,Indeterminate,1,1,1}
    So, in this scenario, only
    n=0
    causes the problem.

    2.1.2 Invoking assumption and then taking the limit (your way)

    Although you use the option
    Assumptions
    , the equivalent way that illustrates the point better is to use the function
    Assuming
    :
    In[]:=
    Assuming[n∈Integers&&n!=0,Limit[x/IntegerPart[x],x->n,Direction->"FromAbove"]]
    Out[]=
    1
    n≥0
    n
    1+n
    True
    In[]:=
    Assuming[n∈Integers&&n!=0,Limit[x/IntegerPart[x],x->n,Direction->"FromBelow"]]
    Out[]=
    1
    n≤0
    n
    -1+n
    True
    So, in this case, it’s not surprising that invoking assumptions first and only then taking the limit yields the following:
    In[]:=
    Assuming[n∈Integers&&n!=0,Limit[x/IntegerPart[x],x->n]]
    Out[]=
    Indeterminate
    In[]:=
    Assuming[n==0,Limit[x/IntegerPart[x],x->n]]
    Out[]=
    ComplexInfinity
    So, in this scenario, the problem is for every
    n
    .

    2.1.3 Conclusion

    One has to be careful and realize that there might be a difference, as the above example demonstrates, between:
    ◼
  • Taking a limit first and then applying assumptions (my implicit way), and
  • ◼
  • Invoking assumptions first and then taking the limit (your way).
  • The order of operations (taking a limit and invoking assumptions) needs to be specified for the question to be meaningful.

    Comment 3.1

    3.1.1 My WRONG Counterexample

    Luke! Your critique of my counterexample is indeed correct. An alternative way to see it is by presenting my proposed function as
    f(x)=
    2
    x
    +H(x-1)
    where H(x) is the Heaviside step function (
    HeavisideTheta
    in Mathematica).
    In[]:=
    Grid[{{Plot[HeavisideTheta[x-1],{x,0,2},AxesLabel->Automatic,PlotStyle->Thick,ImageSize->Small],Plot[
    2
    x
    +HeavisideTheta[x-1],{x,0,2},PlotRange->{0,3.5},PlotStyle->Thick,AxesLabel->Automatic,ImageSize->Small]}},Frame->All]
    Out[]=
    But the derivative of this function involves the impulse Dirac Delta distribution concentrated at
    x=1
    , so
    f'(x)
    indeed cannot be considered continuous there:
    In[]:=
    D[
    2
    x
    +HeavisideTheta[x-1],x]
    Out[]=
    2x+DiracDelta[-1+x]

    3.1.2 Sin[x]/x

    As to the function
    Sin[x]/x
    , it illustrates the view point difference between math purists and engineers (I am in the latter camp). This function, or its extension
    Sinc[x]
    , is continuous at zero for two reasons.
    First, because, again, its limit, its limit from the left, and its limit from the right are all equal to each other:
    In[]:=
    Limit
    Sin[x]
    x
    ,x->0,​​Limit
    Sin[x]
    x
    ,x->0,Direction->"FromAbove",​​Limit
    Sin[x]
    x
    ,x->0,Direction->"FromBelow"
    Out[]=
    {1,1,1}
    And second,
    x=0
    is just a point of an apparent discontinuity, which clearly disappears upon Taylor expansion and the division of the respective series:
    In[]:=
    Series[Sin[x],{x,0,5}]​​x​​Series
    Sin[x]
    x
    ,{x,0,5}
    Out[]=
    x-
    3
    x
    6
    +
    5
    x
    120
    +
    6
    O[x]
    Out[]=
    x
    Out[]=
    1-
    2
    x
    6
    +
    4
    x
    120
    +
    6
    O[x]
    In summary, the purists could see the difference between
    Sin[x]/x
    and
    Sinc[x]
    , but engineers would not. Since I am big on viewpoint diversity, let’s agree to disagree 😀.