Some further suggestions for improvement....
You have a lot of variables that are used only once, so there's no benefit to putting them into variables -- just figure the values where they are used. You even have at least one that is never used. And Copying the selected Polyline doesn't seem to be doing anything for you, so I omitted that.
I don't see the point in rounding the area to 2 decimal places [in a rather round-about way], and then calculating the acreage and getting that in text form to 3 decimal places. So I left the area value "raw" and rounded it directly to 3 decimal places only at the time of constructing the text content.
The following incorporates asking the User to try again, if they either miss picking or pick something other than a Polyline, within the command, rather than ending the command and requiring them to start it again.
It also uses (entsel) rather than (ssget), so you can have the prompt you want, and not have to see the "Select objects:" prompt [always in the plural] that (ssget) always provides.
[And I thought maybe the command echoing of one Area command and one Text command might not be too objectionable to just allow, but you can turn it off if you prefer, though I concur with @ВeekeeCZ that you must set it back afterwards. But that would mean you should include *error* handling, which if you leave command echoing on, you don't really need.]
(defun C:ACRE ( / esel ent p1)
(while
(not
(and
(setq esel (entsel "\nSelect Polyline: "))
(wcmatch (cdr (assoc 0 (entget (setq ent (car esel))))) "*POLYLINE")
); and
); not
(prompt "\nOBJECT SELECTED NOT A POLYLINE, TRY IT AGAIN")
); while
(if (setq p1 (getpoint "\nText center point - will use current settings - <*none*> "))
(progn ; then
(command
"_.area" "_object" ent
"_.text" "_middle" p1
); command -- leaves at height or rotation prompt
(if (= (cdr (assoc 40 (tblsearch "style" (getvar 'textstyle)))) 0)
(command "" "") (command ""); without or with fixed height
); if
(command (strcat (rtos (/ (getvar 'area) 43560) 2 3) " ACRES"))
); progn
); if
(princ)
); defun
(C:ACRE)
Kent Cooper, AIA