No, neither solution specified removes duplicates.  That requirement was not part of the original request.
The Contains() function has the ability to check across items in a list to see if a match is found.  I use it quite often.  
Names Default To Here( 1 );
theList = {"AB", "AB", "CD", "EF"};
x = {};
Insert Into( x, theList[1] );
For( i = 2, i <= N Items( theList ), i++,
	If( Contains( x, theList[i] ) == 0,
		Insert Into( x, theList[i] )
	)
);
show(x);
So all that has to be done, is to place this code into one or the other suggested solutions.
x = :Current data;
If( Contains( x, "/" ) > 0,
	theList = Words( x, "/" );
	theList = Sort List( theList );
	x = {};
	Insert Into( x, theList[1] );
	For( i = 2, i <= N Items( theList ), i++,
		If( Contains( x, theList[i] ) == 0,
			Insert Into( x, theList[i] )
		)
	);
	x = Concat Items( x, "/" );
);
x;
					
				
			
			
				
	Jim