How to speed up string cleanup function?
The function should be noticeably faster with fewer assignments (none, actually, in this updated version):

CREATE FUNCTION ufn_cie_easy(text)
  RETURNS text AS
$func$
BEGIN
RETURN replace(replace(replace(replace(replace(replace(
         translate($1,'ŠŽšžŸÝÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ!"#$%&amp;()*+,-./:;&lt;=&gt;?@[\]^_`{|}~€‚ƒ„…†‡ˆ‰‹‘’“”•–—˜™›¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿×Þð÷þÐ'
                     ,'SZszYYAAAAAACEEEEIIIINOOOOOOUUUUaaaaaaceeeeiiiinoooooouuuuyy')
         ,'Œ','OE')
         ,'Æ','AE')
         ,'œ','oe')
         ,'æ','ae')
         ,'ß','ss')
         ,'''','');
END
$func$  LANGUAGE plpgsql;


Assignments are comparatively expensive in plpgsql.

But I suspect you really want to remove all accents (diacritic signs). Postgres provides the function unaccent() with the additional module unaccent:

CREATE OR REPLACE FUNCTION ufn_cie_easy(text)
  RETURNS text AS
$func$
SELECT translate(unaccent(
        replace(replace(replace(replace(replace(
          $1
         ,'Œ','OE')
         ,'Æ','AE')
         ,'œ','oe')
         ,'æ','ae')
         ,'ß','ss')
       ), '!"#$%&amp;()*+,-./:;&lt;=&gt;?@[\]^_`{|}~€‚ƒ„…†‡ˆ‰‹‘’“”•–—˜™›¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿×Þð÷þÐ''', '');
$func$  LANGUAGE sql IMMUTABLE;


Substantially faster, yet. And superior in every aspect if you actually want to remove all diacritic signs.

In addition to unaccent():


Include an escaped ' ('') in translate() directly.
Make it a simple SQL function.
Make the function IMMUTABLE.


Detailed explanation and more related issues to consider if you need an IMMUTABLE function with unaccent():


Does PostgreSQL support “accent insensitive” collations?


In Postgres 9.5 or older we need to expand ligatures like 'Œ' or 'ß' manually, since unaccent() always substitutes a single letter:

    SELECT unaccent('Œ Æ œ æ ß');

    unaccent
    ----------
    E A e a S


What I would do in Postgres 9.6

After this update to unaccent:


  Extend contrib/unaccent's standard unaccent.rules file to handle all
  diacritics known to Unicode, and expand ligatures correctly (Thomas
  Munro, Léonard Benedetti)


Bold emphasis mine. Using unaccent() like instructed in the linked answer above:

CREATE OR REPLACE FUNCTION ufn_cie_easy(text)
  RETURNS text AS
$func$
SELECT trim(regexp_replace(regexp_replace(public.unaccent('public.unaccent', $1)
                                        , '[^a-zA-Z\d\s]', '', 'g')
                         , '\s+', ' ', 'g'));
$func$  LANGUAGE sql IMMUTABLE;


Almost, but not quite 100 % identical to what you had. Better IMHO:


Replace all accents and expands all ligatures with unaccent().
Remove all noise characters (everything except ASCII letters, digits and white space).
Fold whitespace to a single space (' ').
Trim leading and trailing spaces.