diff --git a/R/tinyplot.R b/R/tinyplot.R
index 38a19402..bc25b865 100644
--- a/R/tinyplot.R
+++ b/R/tinyplot.R
@@ -606,22 +606,23 @@ tinyplot.default = function(
   par_first = get_saved_par("first")
   if (is.null(par_first)) set_saved_par("first", par())
 
+  assert_logical(add)
+  
   # save for tinyplot_add()
-  if (!isTRUE(add)) {
+  if (!add) {
     calls = sys.calls()
     idx = grep("^tinyplot", sapply(calls, function(k) k[[1]]))
     if (length(idx) > 0) {
       options(tinyplot_last_call = calls[[idx[1]]])
     }
+    ## TODO: remove the global option above and move to this when density is refactored
+    # cal = match.call(call = sys.call(sys.parent()), expand.dots = TRUE)
+    # assign(".last_call", cal, envir = get(".tinyplot_env", envir = parent.env(environment())))
   }
 
-  ## TODO: remove the global option above and move to this when density is refactored
-  # cal = match.call(call = sys.call(sys.parent()), expand.dots = TRUE)
-  # assign(".last_call", cal, envir = get(".tinyplot_env", envir = parent.env(environment())))
-
   dots = list(...)
 
-  if (isTRUE(add)) legend = FALSE
+  if (add) legend = FALSE
   draw = substitute(draw)
 
 
@@ -694,7 +695,12 @@ tinyplot.default = function(
   set_saved_par(when = "before", opar)
 
   # catch for adding to existing facet plot
-  if (!is.null(facet) && isTRUE(add)) {
+  if (!is.null(facet) && add) {
+    if (Sys.getenv("POSITRON") == 1) warning(
+      "Positron IDE detected.\n",
+      "Adding layers to a faceted tinyplot in Positron leads to known alignment errors. Please see:\n",
+      "https://github.com/posit-dev/positron/issues/7316"
+    )
     par(get_saved_par(when = "after"))
   }
 
@@ -989,7 +995,7 @@ tinyplot.default = function(
     }
   }
 
-  if ((is.null(legend) || legend != "none") && isFALSE(add)) {
+  if ((is.null(legend) || legend != "none") && !add) {
     if (isFALSE(by_continuous)) {
       if (ngrps > 1) {
         lgnd_labs = if (is.factor(datapoints$by)) levels(datapoints$by) else unique(datapoints$by)
@@ -1022,7 +1028,7 @@ tinyplot.default = function(
     )
 
     has_legend = TRUE
-  } else if (legend_args[["x"]] == "none" && isFALSE(add)) {
+  } else if (legend_args[["x"]] == "none" && !add) {
     omar = par("mar")
     ooma = par("oma")
     topmar_epsilon = 0.1
@@ -1052,7 +1058,7 @@ tinyplot.default = function(
   }
 
   # Titles. Only draw these if add = FALSE
-  if (isFALSE(add)) {
+  if (!add) {
     # main title
     # Note that we include a special catch for the main title if legend is
     # "top!" (and main is specified in the first place).
@@ -1133,7 +1139,7 @@ tinyplot.default = function(
   # placeholders for facet_window_args() call
   facet_newlines = facet_text = facet_rect = facet_font = facet_col = facet_bg = facet_border = NULL
 
-  if (!is.null(facet) && isFALSE(add)) {
+  if (!is.null(facet) && !add) {
     if (is.null(omar)) omar = par("mar")
 
     # Grab some of the customizable facet args that we'll be using later
@@ -1356,9 +1362,11 @@ tinyplot.default = function(
     }
   }
   
-  # save end pars for possible recall later
-  apar = par(no.readonly = TRUE)
-  set_saved_par(when = "after", apar)
+  if (!add) {
+    # save end pars for possible recall later
+    apar = par(no.readonly = TRUE)
+    set_saved_par(when = "after", apar)
+  }
 
 }
 
diff --git a/R/tinyplot_add.R b/R/tinyplot_add.R
index fc9bea60..e526e86b 100644
--- a/R/tinyplot_add.R
+++ b/R/tinyplot_add.R
@@ -8,13 +8,28 @@
 #' `tinyplot_add()`.
 #'
 #' @section Limitations:
-#' - Currently, `tinyplot_add` only works reliably if you are adding to a plot
-#' that was originally constructed with the [tinyplot.formula] method (and
-#' passed an appropriate `data` argument). In contrast, we cannot guarantee that
-#' using `tinyplot_add` will work correctly if your original plot was
-#' constructed with the atomic [tinyplot.default] method. The reason has to do
-#' with potential environment mismatches. (An exception is thus if your plot
-#' arguments (`x`, `y`, etc.) are attached to your global R environment.)
+#' - `tinyplot_add()` works reliably only when adding to a plot originally
+#'   created using the [tinyplot.formula] method with a valid `data` argument.
+#'   We cannot guarantee correct behavior if the original plot was created with
+#'   the atomic [tinyplot.default] method, due to potential environment
+#'   mismatches. (An exception is when the original plot arguments---`x`, `y`,
+#'   etc.---are located in the global environment.)
+#'
+#' - There are two important limitations when adding layers to _faceted_ plots:
+#'
+#'   - Avoid resizing the graphics window after the first layer is drawn, since
+#'     it will lead to any subsequent layers being misaligned. This is a
+#'     limitation of base R's `graphics` engine and cannot be reliably preempted
+#'     or corrected by `tinyplot`. Note that resizing non-faceted plots is
+#'     always fine, though. See:
+#'     <https://github.com/grantmcdermott/tinyplot/issues/313>
+#'
+#'   - On Positron, specifically, alignment issues may occur even without
+#'     resizing. A warning will be triggered when (i) Positron is detected and
+#'     (ii) a user attempts to add layers to a faceted plot. Again, this issue
+#'     is not present for non-facated plots. See the upstream bug report:
+#'     <https://github.com/posit-dev/positron/issues/7316>
+#' 
 #' - Automatic legends for the added elements will be turned off.
 #'
 #' @param ... All named arguments override arguments from the previous calls.
diff --git a/man/tinyplot_add.Rd b/man/tinyplot_add.Rd
index 8a0f457b..c69582e7 100644
--- a/man/tinyplot_add.Rd
+++ b/man/tinyplot_add.Rd
@@ -27,13 +27,26 @@ layer on top of the existing plot. \code{plt_add()} is a shorthand alias for
 \section{Limitations}{
 
 \itemize{
-\item Currently, \code{tinyplot_add} only works reliably if you are adding to a plot
-that was originally constructed with the \link{tinyplot.formula} method (and
-passed an appropriate \code{data} argument). In contrast, we cannot guarantee that
-using \code{tinyplot_add} will work correctly if your original plot was
-constructed with the atomic \link{tinyplot.default} method. The reason has to do
-with potential environment mismatches. (An exception is thus if your plot
-arguments (\code{x}, \code{y}, etc.) are attached to your global R environment.)
+\item \code{tinyplot_add()} works reliably only when adding to a plot originally
+created using the \link{tinyplot.formula} method with a valid \code{data} argument.
+We cannot guarantee correct behavior if the original plot was created with
+the atomic \link{tinyplot.default} method, due to potential environment
+mismatches. (An exception is when the original plot arguments---\code{x}, \code{y},
+etc.---are located in the global environment.)
+\item There are two important limitations when adding layers to \emph{faceted} plots:
+\itemize{
+\item Avoid resizing the graphics window after the first layer is drawn, since
+it will lead to any subsequent layers being misaligned. This is a
+limitation of base R's \code{graphics} engine and cannot be reliably preempted
+or corrected by \code{tinyplot}. Note that resizing non-faceted plots is
+always fine, though. See:
+\url{https://github.com/grantmcdermott/tinyplot/issues/313}
+\item On Positron, specifically, alignment issues may occur even without
+resizing. A warning will be triggered when (i) Positron is detected and
+(ii) a user attempts to add layers to a faceted plot. Again, this issue
+is not present for non-facated plots. See the upstream bug report:
+\url{https://github.com/posit-dev/positron/issues/7316}
+}
 \item Automatic legends for the added elements will be turned off.
 }
 }
