http://git.savannah.gnu.org/gitweb/?p=guile.git;a=commitdiff;h=eb3d623da57e6d31a58d95f932345fb761f9b701 on master fixes printing of scm_tc7_array (shared array) to be #1(...) or #1typetag(...) so they aren't confused with actual vectors or bytevectors.
With respect to the lack of capability to create shared bytevectors, use the array procedures instead. If you need the arrays to be contiguous, you can check this at run time. The fundamental distinction between shared arrays on one side and bytevectors/vectors/bitvectors on the other side is not of contiguity, rank, element type, etc. but that the latter types are containers, while the shared arrays are just views. That is why I don't think indirection fields should be added to the bytevectors, this would complicate the lookup functions and overlap in functionality with arrays.