RJL
Maplesoft
One advantage of the worksheet is that you can single-step through a sequence of Maple commands, with the cursor moving automatically to the next prompt. This does not happen in Document mode. In fact, after hitting the Enter key to execute a command in document mode, the cursor moves to the next blank document block. Further use of the Enter key just generates new empty document blocks, so if you are in class working through a sequence of calculations, you have to use the mouse to move to the next executable command in Document mode.
One blend of the technologies is to use a worksheet, but to capture the commands in 2D math. These commands can either be written in 2D math, or converted to 2D math from 1D. In fact, experienced users of Maple who demonstrate sequential calculations for students can write a worksheet much as they would have done in earlier versions of Maple, then convert the 1D input to 2D input for the mathematical clarity that such input often permits.
In my 15 years of using Maple in the classroom, I was in worksheet mode with 1D math. After my retirement, it took a bit of time, but I morphed my style to worksheet with 1D for creation, with converson to 2D for a better view of the mathematics being expressed by the command.
A student who wants to see the underlying 1D math input can revert the change via context menu.
I haven't yet used the Document mode to write a mathematical paragraph that captures live calculations within the sentences of the paragraph. That's what I see as one of the two basic functionalities of the Document mode. The other is as a workspace for free-form drag-and-drop point-and-click syntax-free calculations. This can be done in a worksheet, too, but it feels more efficient to me done in a Document.

RJL
Maplesoft
The following commands will result in a graph of the surface, its tangent plane at (1,1,1), and the normal line through (1,1,1).
However, this isn't a "directional derivative" issue per se. It might arise while studying the meaning of the directional derivative, but in itself, the construction does not require the concept of "directional derivative."
with(VectorCalculus):
BasisFormat(false):
with(plots):
q := x*y+y*z+z*x-3;
V := Gradient(q,cartesian[x,y,z]);
N := evalVF(V,<1,1,1>);
L := <1,1,1>+t*N;
Z := solve(q,z);
TPZ := mtaylor(Z,[x=1,y=1],2);
p1 := implicitplot3d(q=0,x=-1..3,y=-1..3,z=-1..3):
p2 := plot3d(TPZ, x=0..2,y=0..2):
p3 := spacecurve(L,t=-1/2..1/2, color=black, thickness=2):
display([p||(1..3)], scaling=constrained, axes=box);

For example, to apply the ratio test to the series Sum(1/2^n, n=0..infinity), define
> a := n -> 1/2^n:
> 'a'[n] = a(n);
then compute
> r = limit(a(n+1)/a(n), n=infinity);
We suggest two lines to define a[n]. The first defines it as a functin of n, the second displays it more naturally. The left side of the output of the second line appears as a[n], whereas the right side appears as 1/2^n. Similar computations apply to the nth-root test, etc. There is no single command for determining the convergence or divergence of a series. If the whole series is entered as
> S := Sum(1/2^n, n=0..infinity);
then the command
> value(S);
will produce a finite result, in which case it's clear the series converged. If Maple can determine the series diverges, it will return the symbol "infinity" or -infinity. If Maple returns unevaluated, it means that Maple could not determine a limit for the partial sums, but that does not mean such a limit does not exist. It only means that Maple couldn't determine that limit. There is no single command in Maple for writing the general term in a series. The taylor (or series) commands produce a partial sum, with the terms written out (not in in sigma-notation). However, the nth derivative of an expression can be computed. Hence, it is possible to build the general form of a series expansion. For example, to obtain the general expansion of sin(x) at x = 0, implement the following commands.
> q := eval(diff(sin(x),x$n)/n!, x=0);
> q1 := simplify(eval(q, n=2*k+1)) assuming k::posint;
The first command produces sin(n*Pi/2)/n! whereas the second produces (-1)^k/(2*k+1)!. User insight and intervention is definitely needed here! The requisite Maclaurin expansion is then obtained with
> Sum(q1*x^(2*k+1), k=0..infinity);
The Share Library, a repository for code contributed by users, contained the FPS package with its FormalPowerSeries command. This command would return the formal power series in sigma notation. However, the Share Library is no longer available.